1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
use serde::Serialize; use std::fmt::Debug; use thiserror::Error; #[derive(Error, Serialize, Debug, PartialEq)] pub enum EvaluateError { #[error("nested select row not found")] NestedSelectRowNotFound, #[error("literal add on non-numeric")] LiteralAddOnNonNumeric, #[error("unary plus operation on non-numeric")] LiteralUnaryPlusOnNonNumeric, #[error("unary minus operation on non-numeric")] LiteralUnaryMinusOnNonNumeric, #[error("function is not supported: {0}")] FunctionNotSupported(String), #[error("function requires string value: {0}")] FunctionRequiresStringValue(String), #[error( "number of function parameters not matching (expected: {expected:?}, found: {found:?})" )] NumberOfFunctionParamsNotMatching { expected: usize, found: usize }, #[error("value not found: {0}")] ValueNotFound(String), #[error("unsupported compound identifier {0}")] UnsupportedCompoundIdentifier(String), #[error("unreachable condition base")] UnreachableConditionBase, #[error("unreachable evaluated arithmetic")] UnreachableEvaluatedArithmetic, #[error("unreachable literal arithmetic")] UnreachableLiteralArithmetic, #[error("unreachable empty context")] UnreachableEmptyContext, #[error("unimplemented")] Unimplemented, }