pub trait Expr:
Arg
+ Sync
+ Send {
Show 41 methods
// Required methods
fn for_each_arg(&self, f: &mut dyn FnMut(&dyn Arg));
fn clone_box(&self) -> Box<dyn Expr>;
fn str(&self) -> String;
fn get_ref<'a>(&'a self) -> &'a dyn Expr;
// Provided methods
fn as_expr(&self) -> Option<Box<dyn Expr>> { ... }
fn args(&self) -> Vec<Box<dyn Arg>> { ... }
fn args_map_exprs(
&self,
_f: &dyn Fn(&dyn Expr) -> Box<dyn Arg>,
) -> Vec<Box<dyn Arg>> { ... }
fn from_args(&self, args: Vec<Box<dyn Arg>>) -> Box<dyn Expr> { ... }
fn as_arg(&self) -> Box<dyn Arg> { ... }
fn as_function(&self) -> Option<&Func> { ... }
fn equals(&self, other: &dyn Expr) -> bool { ... }
fn as_symbol(&self) -> Option<Symbol> { ... }
fn as_eq(&self) -> Option<Equation> { ... }
fn as_mul(&self) -> Option<&Mul> { ... }
fn as_pow(&self) -> Option<&Pow> { ... }
fn as_f64(&self) -> Option<f64> { ... }
fn to_cpp(&self) -> String { ... }
fn simplify(&self) -> Box<dyn Expr> { ... }
fn simplify_with_dimension(&self, dim: usize) -> Box<dyn Expr> { ... }
fn as_int(&self) -> Option<Integer> { ... }
fn pow(&self, exponent: &Box<dyn Expr>) -> Box<dyn Expr> { ... }
fn ipow(&self, exponent: isize) -> Box<dyn Expr> { ... }
fn sqrt(&self) -> Box<dyn Expr> { ... }
fn get_exponent(&self) -> (Box<dyn Expr>, Box<dyn Expr>) { ... }
fn diff(&self, var: &str, order: usize) -> Box<dyn Expr> { ... }
fn name(&self) -> String { ... }
fn subs(&self, substitutions: &[[Box<dyn Expr>; 2]]) -> Box<dyn Expr> { ... }
fn has(&self, expr: &dyn Expr) -> bool { ... }
fn has_box(&self, expr: Box<dyn Expr>) -> bool { ... }
fn expand(&self) -> Box<dyn Expr> { ... }
fn factor(&self, factors: &[&dyn Expr]) -> Box<dyn Expr> { ... }
fn is_one(&self) -> bool { ... }
fn is_neg_one(&self) -> bool { ... }
fn is_number(&self) -> bool { ... }
fn is_negative_number(&self) -> bool { ... }
fn is_zero(&self) -> bool { ... }
fn known_expr(&self) -> KnownExpr<'_> { ... }
fn terms<'a>(&'a self) -> Box<dyn Iterator<Item = &'a dyn Expr> + 'a> { ... }
fn get_coeff(&self) -> (Rational, Box<dyn Expr>) { ... }
fn compare(&self, other: &dyn Expr) -> Option<Ordering> { ... }
fn evaluate(&self, vars: Option<HashMap<Symbol, BoxExpr>>) -> BoxExpr { ... }
}Required Methods§
fn for_each_arg(&self, f: &mut dyn FnMut(&dyn Arg))
fn clone_box(&self) -> Box<dyn Expr>
fn str(&self) -> String
fn get_ref<'a>(&'a self) -> &'a dyn Expr
Provided Methods§
fn as_expr(&self) -> Option<Box<dyn Expr>>
fn args(&self) -> Vec<Box<dyn Arg>>
fn args_map_exprs( &self, _f: &dyn Fn(&dyn Expr) -> Box<dyn Arg>, ) -> Vec<Box<dyn Arg>>
fn from_args(&self, args: Vec<Box<dyn Arg>>) -> Box<dyn Expr>
fn as_arg(&self) -> Box<dyn Arg>
fn as_function(&self) -> Option<&Func>
fn equals(&self, other: &dyn Expr) -> bool
fn as_symbol(&self) -> Option<Symbol>
fn as_eq(&self) -> Option<Equation>
fn as_mul(&self) -> Option<&Mul>
fn as_pow(&self) -> Option<&Pow>
fn as_f64(&self) -> Option<f64>
fn to_cpp(&self) -> String
fn simplify(&self) -> Box<dyn Expr>
fn simplify_with_dimension(&self, dim: usize) -> Box<dyn Expr>
fn as_int(&self) -> Option<Integer>
fn pow(&self, exponent: &Box<dyn Expr>) -> Box<dyn Expr>
fn ipow(&self, exponent: isize) -> Box<dyn Expr>
fn sqrt(&self) -> Box<dyn Expr>
fn get_exponent(&self) -> (Box<dyn Expr>, Box<dyn Expr>)
fn diff(&self, var: &str, order: usize) -> Box<dyn Expr>
fn name(&self) -> String
fn subs(&self, substitutions: &[[Box<dyn Expr>; 2]]) -> Box<dyn Expr>
fn has(&self, expr: &dyn Expr) -> bool
fn has_box(&self, expr: Box<dyn Expr>) -> bool
Sourcefn factor(&self, factors: &[&dyn Expr]) -> Box<dyn Expr>
fn factor(&self, factors: &[&dyn Expr]) -> Box<dyn Expr>
Factorizes an expression For example: factor(ax + cx + zy, [x]) -> (a + c)x + zy
fn is_one(&self) -> bool
fn is_neg_one(&self) -> bool
fn is_number(&self) -> bool
fn is_negative_number(&self) -> bool
fn is_zero(&self) -> bool
fn known_expr(&self) -> KnownExpr<'_>
fn terms<'a>(&'a self) -> Box<dyn Iterator<Item = &'a dyn Expr> + 'a>
fn get_coeff(&self) -> (Rational, Box<dyn Expr>)
fn compare(&self, other: &dyn Expr) -> Option<Ordering>
fn evaluate(&self, vars: Option<HashMap<Symbol, BoxExpr>>) -> BoxExpr
Trait Implementations§
Source§impl AddAssign for Box<dyn Expr>
impl AddAssign for Box<dyn Expr>
Source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
Performs the
+= operation. Read moreSource§impl<'de> Deserialize<'de> for Box<dyn Expr>
impl<'de> Deserialize<'de> for Box<dyn Expr>
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl DivAssign<&(dyn Expr + 'static)> for Box<dyn Expr>
impl DivAssign<&(dyn Expr + 'static)> for Box<dyn Expr>
Source§fn div_assign(&mut self, rhs: &dyn Expr)
fn div_assign(&mut self, rhs: &dyn Expr)
Performs the
/= operation. Read moreSource§impl DivAssign<&(dyn Expr + 'static)> for Equation
impl DivAssign<&(dyn Expr + 'static)> for Equation
Source§fn div_assign(&mut self, rhs: &dyn Expr)
fn div_assign(&mut self, rhs: &dyn Expr)
Performs the
/= operation. Read moreSource§impl JsonSchema for dyn Expr
impl JsonSchema for dyn Expr
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Returns a string that uniquely identifies the schema produced by this type. Read more
Source§fn json_schema(_generator: &mut SchemaGenerator) -> Schema
fn json_schema(_generator: &mut SchemaGenerator) -> Schema
Generates a JSON Schema for this type. Read more
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
Whether JSON Schemas generated for this type should be included directly in parent schemas,
rather than being re-used where possible using the
$ref keyword. Read moreSource§impl MulAssign<&(dyn Expr + 'static)> for Box<dyn Expr>
impl MulAssign<&(dyn Expr + 'static)> for Box<dyn Expr>
Source§fn mul_assign(&mut self, rhs: &dyn Expr)
fn mul_assign(&mut self, rhs: &dyn Expr)
Performs the
*= operation. Read moreSource§impl SubAssign<&(dyn Expr + 'static)> for Box<dyn Expr>
impl SubAssign<&(dyn Expr + 'static)> for Box<dyn Expr>
Source§fn sub_assign(&mut self, rhs: &dyn Expr)
fn sub_assign(&mut self, rhs: &dyn Expr)
Performs the
-= operation. Read moreSource§impl SubAssign<&(dyn Expr + 'static)> for Equation
impl SubAssign<&(dyn Expr + 'static)> for Equation
Source§fn sub_assign(&mut self, rhs: &dyn Expr)
fn sub_assign(&mut self, rhs: &dyn Expr)
Performs the
-= operation. Read more