pub struct IntentBuilder<'a, A: Analysis<IKun>> {
pub egraph: &'a mut EGraph<IKun, A>,
}Fields§
§egraph: &'a mut EGraph<IKun, A>Implementations§
Source§impl<'a, A: Analysis<IKun>> IntentBuilder<'a, A>
impl<'a, A: Analysis<IKun>> IntentBuilder<'a, A>
pub fn new(egraph: &'a mut EGraph<IKun, A>) -> Self
Sourcepub fn add(&mut self, node: IKun, loc: Loc) -> Id
pub fn add(&mut self, node: IKun, loc: Loc) -> Id
Add a raw IKun node to the graph with location
pub fn constant(&mut self, v: i64, loc: Loc) -> Id
pub fn int(&mut self, v: i64, loc: Loc) -> Id
pub fn float(&mut self, v: f64, loc: Loc) -> Id
pub fn bool(&mut self, v: bool, loc: Loc) -> Id
pub fn none(&mut self, loc: Loc) -> Id
pub fn string(&mut self, s: &str, loc: Loc) -> Id
pub fn symbol(&mut self, s: &str, loc: Loc) -> Id
pub fn import(&mut self, module: &str, name: &str, loc: Loc) -> Id
pub fn export(&mut self, name: &str, body: Id, loc: Loc) -> Id
pub fn seq(&mut self, items: Vec<Id>, loc: Loc) -> Id
pub fn map(&mut self, f: Id, input: Id, loc: Loc) -> Id
pub fn reduce(&mut self, f: Id, init: Id, list: Id, loc: Loc) -> Id
pub fn filter(&mut self, f: Id, input: Id, loc: Loc) -> Id
pub fn call(&mut self, func: Id, args: Vec<Id>, loc: Loc) -> Id
pub fn lambda(&mut self, params: Vec<String>, body: Id, loc: Loc) -> Id
pub fn assign(&mut self, name: &str, value: Id, loc: Loc) -> Id
pub fn assign_to_id(&mut self, target: Id, value: Id, loc: Loc) -> Id
pub fn block(&mut self, stmts: Vec<Id>, loc: Loc) -> Id
pub fn module(&mut self, name: &str, items: Vec<Id>, loc: Loc) -> Id
pub fn branch( &mut self, cond: Id, then_branch: Id, else_branch: Id, loc: Loc, ) -> Id
pub fn if_( &mut self, cond: Id, then_branch: Id, else_branch: Option<Id>, loc: Loc, ) -> Id
pub fn loop_(&mut self, count: Id, body: Id, loc: Loc) -> Id
pub fn while_loop(&mut self, cond: Id, body: Id, loc: Loc) -> Id
pub fn while_(&mut self, cond: Id, body: Id, loc: Loc) -> Id
pub fn break_(&mut self, loc: Loc) -> Id
pub fn continue_(&mut self, loc: Loc) -> Id
pub fn return_(&mut self, value: Id, loc: Loc) -> Id
pub fn cross_lang_call( &mut self, lang: &str, group: &str, func: &str, args: Vec<Id>, loc: Loc, ) -> Id
pub fn extension(&mut self, name: &str, args: Vec<Id>, loc: Loc) -> Id
pub fn binary_op(&mut self, op: &str, left: Id, right: Id, loc: Loc) -> Id
pub fn unary_op(&mut self, op: &str, operand: Id, loc: Loc) -> Id
pub fn address_of(&mut self, target: Id, loc: Loc) -> Id
pub fn deref(&mut self, pointer: Id, loc: Loc) -> Id
pub fn ptr_offset(&mut self, base: Id, offset: Id, loc: Loc) -> Id
pub fn class_def( &mut self, name: &str, bases: Vec<Id>, body: Id, loc: Loc, ) -> Id
pub fn table(&mut self, pairs: Vec<Id>, loc: Loc) -> Id
pub fn pair(&mut self, key: Id, value: Id, loc: Loc) -> Id
pub fn get_index(&mut self, receiver: Id, index: Id, loc: Loc) -> Id
pub fn set_index(&mut self, receiver: Id, index: Id, value: Id, loc: Loc) -> Id
pub fn add_op(&mut self, left: Id, right: Id, loc: Loc) -> Id
pub fn sub_op(&mut self, left: Id, right: Id, loc: Loc) -> Id
pub fn mul_op(&mut self, left: Id, right: Id, loc: Loc) -> Id
pub fn div_op(&mut self, left: Id, right: Id, loc: Loc) -> Id
pub fn eq_op(&mut self, left: Id, right: Id, loc: Loc) -> Id
pub fn ne_op(&mut self, left: Id, right: Id, loc: Loc) -> Id
pub fn lt_op(&mut self, left: Id, right: Id, loc: Loc) -> Id
pub fn le_op(&mut self, left: Id, right: Id, loc: Loc) -> Id
pub fn gt_op(&mut self, left: Id, right: Id, loc: Loc) -> Id
pub fn ge_op(&mut self, left: Id, right: Id, loc: Loc) -> Id
pub fn neg_op(&mut self, val: Id, loc: Loc) -> Id
pub fn not_op(&mut self, val: Id, loc: Loc) -> Id
pub fn len_op(&mut self, val: Id, loc: Loc) -> Id
pub fn bit_not_op(&mut self, val: Id, loc: Loc) -> Id
pub fn get_index_ext(&mut self, obj: Id, key: Id, loc: Loc) -> Id
pub fn set_index_ext(&mut self, obj: Id, key: Id, val: Id, loc: Loc) -> Id
pub fn parameter(&mut self, name: &str, _loc: Loc) -> String
pub fn function( &mut self, name: &str, params: Vec<String>, body: Vec<Id>, loc: Loc, ) -> Id
pub fn resource_clone(&mut self, target: Id, loc: Loc) -> Id
pub fn resource_drop(&mut self, target: Id, loc: Loc) -> Id
pub fn resource_context(&mut self, loc: Loc) -> Id
Auto Trait Implementations§
impl<'a, A> Freeze for IntentBuilder<'a, A>
impl<'a, A> !RefUnwindSafe for IntentBuilder<'a, A>
impl<'a, A> Send for IntentBuilder<'a, A>
impl<'a, A> Sync for IntentBuilder<'a, A>
impl<'a, A> Unpin for IntentBuilder<'a, A>
impl<'a, A> UnsafeUnpin for IntentBuilder<'a, A>
impl<'a, A> !UnwindSafe for IntentBuilder<'a, A>
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