From 72789dff9c52cf2c5ef7772b301a1d5cfd90e272 Mon Sep 17 00:00:00 2001 From: Akshay Date: Mon, 2 Nov 2020 20:00:42 +0530 Subject: fixes for nix --- src/error.rs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/error.rs (limited to 'src/error.rs') diff --git a/src/error.rs b/src/error.rs new file mode 100644 index 0000000..ec2b555 --- /dev/null +++ b/src/error.rs @@ -0,0 +1,29 @@ +/* Copyright (C) 2019 Akshay Oppiliappan + * Refer to LICENCE for more information. + * */ + +#[derive(Debug)] +pub enum CalcError { + Math(Math), + Syntax(String), + Parser(String), +} + +#[derive(Debug)] +pub enum Math { + DivideByZero, + OutOfBounds, + UnknownBase, +} + +pub fn handler(e: CalcError) -> String { + match e { + CalcError::Math(math_err) => match math_err { + Math::DivideByZero => "Math Error: Divide by zero error!".to_string(), + Math::OutOfBounds => "Domain Error: Out of bounds!".to_string(), + Math::UnknownBase => "Base too large! Accepted ranges: 0 - 36".to_string(), + }, + CalcError::Syntax(details) => format!("Syntax Error: {}", details), + CalcError::Parser(details) => format!("Parser Error: {}", details), + } +} -- cgit v1.2.3