use std::any::Any;
fn dynamic_return(i: i8) -> Box<dyn Any>
{
match i {
1 => Box::new(3.14),
2 => Box::new("any"),
3 => Box::new(true),
_ => Box::new(-1),
}
}
let mut pi = dynamic_return(1);
//pi is 3.14
let mut s = dynamic_return(2);
//s is "any"
let mut b = dynamic_return(3);
//b is True
println!("pi is {:?}", pi.downcast_mut::<f64>());
println!("s is {:?}", s.downcast_mut::<&str>());
println!("b is {:?}", b.downcast_mut::<bool>());