macro_rules! bfn { ($v:expr) => { ... }; }
Expand description
implments Bfn struct and bfn! macro for Box<dyn Fn()> trait object
fn main() {
use doe::DebugPrint;
use doe::bfn;
use doe::Bfn;
#[derive(Debug)]
struct Demo<'a>{
name:&'a str
}
let f0 = bfn!(||{println!("ok");});
f0.call();
fn func()->Demo<'static>{
let d = Demo{name: "andrew"};
d
}
let f1 = bfn!(func);
f1.call().dprintln();
fn sum()->usize{
9+89
}
let f2 = Bfn::new(Box::new(sum));//or bfn!(sum);
f2.call().dprintln();
}