prexel 0.1.9

A math expression evaluator
Documentation
use bigdecimal::BigDecimal;
use prexel::num::unchecked::UncheckedNum;
use prexel::context::DefaultContext;
use prexel::evaluator::Evaluator;

fn main(){
    compute::<BigDecimal>("100!");
    compute::<BigDecimal>("sqrt(0.7)");
    compute::<BigDecimal>("sin(180)");
    compute::<BigDecimal>("cos(180)");
}

fn compute<T>(expr: &str) where T: 'static + UncheckedNum {
    let context = DefaultContext::<T>::new_unchecked();
    let evaluator = Evaluator::with_context(context);
    match evaluator.eval(expr) {
        Ok(n) => println!("{} = {}", expr, n),
        Err(e) => println!("{} = {:?}", expr, e),
    }
}