discreet-common 0.1.0

Code shared between the discreet and discreet-macros packages.
Documentation
pub struct Derivative<Expr: Expression, Variable: self::Variable> {
    _e: std::marker::PhantomData<Expr>,
    _v: std::marker::PhantomData<Variable>,
}
impl<E: Expression, V: Variable> Expression for Derivative<E, V> {
    fn eval() -> Expr {
        Expr::Derivative {
            expr: Box::new(E::eval()),
            var: V::get_name(),
        }
    }
}

enum Expr {
    Derivative { expr: Box<Self>, var: String },
}

trait Expression {
    fn eval() -> Expr;
}

pub trait Variable {
    fn get_name() -> String;
}