[−][src]Macro egg::enode
Utility macro to create an ENode
.
Basically enode!(op, arg1, arg2, ...)
desugars to
ENode::new(op.into(), vec![arg1, arg2, ...])
.
Note the conversion on op
.
define_language! { enum SimpleLanguage { Num(i32), Add = "+", Mul = "*", } } use SimpleLanguage::*; let mut egraph: EGraph<SimpleLanguage, ()> = Default::default(); let one = egraph.add(enode!(Num(1))); let two = egraph.add(enode!(Num(2))); let three = egraph.add(enode!(Add, one, two)); let three_manual = egraph.add(ENode::new(Add, vec![one, two])); assert_eq!(three, three_manual);