AutoBox Derive Macro for Rust proc-macro demo
usage:
#[cfg(test)]
mod test{
use autobox::AutoBox;
#[derive(AutoBox,Debug)]
/** expression */
pub enum E {
/** bool */ Bool(bool),
/** nil */ Nil,
/** variable */ Var(String),
/** addition */ Add(Box<E>,Box<E>),
/** subtraction */ Sub{a:Box<E>,b:Box<E>},
}
use e::*;
#[test]
fn test() {
assert_eq!(
r#"Sub { a: Add(Var("a"), Nil), b: Bool(true) }"#,
format!("{:?}",sub(add(var("a"),nil),bool(true))));
}
}
fn main() {}