1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
use std::any::Any; /// Defines a conversion for a type into an [`dyn Any`](Any) trait object. pub trait AsAny: Any { /// Converts `self` into a trait object. fn as_any(&self) -> &dyn Any; /// Converts `self` into a mutable trait object. fn as_any_mut(&mut self) -> &mut dyn Any; } impl<T: Any> AsAny for T { fn as_any(&self) -> &dyn Any { self } fn as_any_mut(&mut self) -> &mut dyn Any { self } }