likebike / fasteval

Fast and safe evaluation of algebraic expressions
https://crates.io/crates/fasteval/
MIT License
267 stars 26 forks source link

Return `Result` in `EvalNamespace::lookup` #10

Open optozorax opened 3 years ago

optozorax commented 3 years ago

Hi, thanks for the great crate!

I want to return a Result with my error type in the lookup function in the EvalNamespace object. For example, there can be recursion where a is dependent on value a, and I can tell this only when the lookup function is called. And I want to show in an error message that problem exactly in the recursion of user-defined formulas.

I believe this can be done by adding an Error associated type to EmptyNamespace and return something like Result<f64, Either<Self::Error, fasteval::Error>> from the lookup function.