1use raekna_common::{expression::Literal, function_name::FunctionName};
2
3pub type ComputeResult<T> = Result<T, ComputeError>;
4
5#[derive(Debug, PartialEq, Eq)]
6pub enum ComputeError {
7 UnknownVariable(String),
8 VariableNameTaken(String),
9 FunctionArgumentCount {
10 function_name: String,
11 expected_argument_count: usize,
12 supplied_argument_count: usize,
13 },
14 ResultTooBig(FunctionName, Vec<Literal>),
15 InvalidFactorialArgument(Literal),
16 InvalidSquareRoot(Literal),
17 DivisionByZero,
18 InvalidTruncatePrecision(Literal),
19}