pub enum Expr {
Lit(f64),
Var(Var),
BinOp {
op: Op,
left: Box<Expr>,
right: Box<Expr>,
},
UnaryOp {
op: UnaryOp,
arg: Box<Expr>,
},
If {
cond: Box<Expr>,
then: Box<Expr>,
else_: Box<Expr>,
},
Fn {
name: String,
args: Vec<Expr>,
},
}Variants§
Implementations§
Source§impl Expr
impl Expr
pub fn lit(n: f64) -> Expr
pub fn var(v: Var) -> Expr
pub fn gt(self, other: impl Into<Expr>) -> Expr
pub fn gte(self, other: impl Into<Expr>) -> Expr
pub fn lt(self, other: impl Into<Expr>) -> Expr
pub fn lte(self, other: impl Into<Expr>) -> Expr
pub fn eq(self, other: impl Into<Expr>) -> Expr
pub fn if_then_else(self, then: impl Into<Expr>, else_: impl Into<Expr>) -> Expr
pub fn sin(self) -> Expr
pub fn cos(self) -> Expr
pub fn tan(self) -> Expr
pub fn abs(self) -> Expr
pub fn sqrt(self) -> Expr
pub fn ceil(self) -> Expr
pub fn floor(self) -> Expr
pub fn round(self) -> Expr
pub fn log(self) -> Expr
pub fn exp(self) -> Expr
pub fn not(self) -> Expr
pub fn call(name: impl Into<String>, args: Vec<Expr>) -> Expr
pub fn compile(&self) -> String
Trait Implementations§
Source§impl From<Expr> for NumberOrExpr
impl From<Expr> for NumberOrExpr
Auto Trait Implementations§
impl Freeze for Expr
impl RefUnwindSafe for Expr
impl Send for Expr
impl Sync for Expr
impl Unpin for Expr
impl UnsafeUnpin for Expr
impl UnwindSafe for Expr
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more