AnyTrait
AnyTrait lets you upcast to a generic &dyn AnyTrait like
[::core::any::Any]
but instead of just allowing you to downcast back to
the concrete type, it also lets you downcast to any trait used by your type
This is not zero-cost, since at any cast we need to go through the list of all possible subtraits.
This will (almost) enable you to do OOP in rust, but if this is your goal we still ask you to kindly reconsider
example usage:
use ;
// if a trait implements `AnyTrait` you can upcast
// must include all traits you want to downcast to