MultiAny
multi-any provides a trait MultiAny that allows downcasting a Box<dyn MultiAny> to either a concrete type or a trait object. Structs can derive MultiAny for multiple traits using the provided procedural macro.
Example
use *;
// Traits must be annotated with #[multi_any]
// With "nightly" feature this is not required
// MultiAny can be derived, and implemented traits must be specified
;
// convert Box<Foo> to Box<dyn MultiAny>
let foo: = Boxnew;
// downcast to to conrete type
let foo_ref: &Foo = foo.downcast_ref.unwrap;
// downcast to trait object
let trait_ref = foo..unwrap;
// downcast to box
let foo: = foo.downcast.unwrap;