Trait Core
Source pub trait Core: Scope + Env {
Show 20 methods
// Required methods
fn new_bool(&self, value: bool) -> Rc<dyn Var>;
fn new_bool_var(&self) -> Rc<dyn Var>;
fn new_int(&self, value: i64) -> Rc<dyn Var>;
fn new_int_var(&self) -> Rc<dyn Var>;
fn new_real(&self, num: i64, den: i64) -> Rc<dyn Var>;
fn new_real_var(&self) -> Rc<dyn Var>;
fn new_string(&self, value: &str) -> Rc<dyn Var>;
fn new_string_var(&self) -> Rc<dyn Var>;
fn sum(&self, sum: &[Rc<dyn Var>]) -> Result<Rc<dyn Var>, RiddleError>;
fn opposite(&self, term: Rc<dyn Var>) -> Result<Rc<dyn Var>, RiddleError>;
fn mul(&self, mul: &[Rc<dyn Var>]) -> Result<Rc<dyn Var>, RiddleError>;
fn div(
&self,
left: Rc<dyn Var>,
right: Rc<dyn Var>,
) -> Result<Rc<dyn Var>, RiddleError>;
fn assert(&self, term: Rc<BoolExpr>) -> bool;
fn new_var(
&self,
class: Rc<dyn Type>,
instances: &[Rc<dyn Var>],
) -> Result<Rc<dyn Var>, RiddleError>;
fn new_disjunction(&self, disjunction: Disjunction);
fn new_atom(&self, atom: Rc<Atom>);
// Provided methods
fn bool_type(&self) -> Rc<BoolType> { ... }
fn int_type(&self) -> Rc<IntType> { ... }
fn real_type(&self) -> Rc<RealType> { ... }
fn string_type(&self) -> Rc<StringType> { ... }
}