pub trait ExtensionStore {
// Required methods
fn extension_by_type_id(&mut self, type_id: TypeId) -> Option<&mut dyn Any>;
fn register_extension_with_type_id(
&mut self,
type_id: TypeId,
extension: Box<dyn Extension>,
) -> Result<(), Error>;
fn deregister_extension_by_type_id(
&mut self,
type_id: TypeId,
) -> Result<(), Error>;
}Expand description
Something that provides access to the Extensions store.
This is a super trait of the Externalities.
Required Methods§
Sourcefn extension_by_type_id(&mut self, type_id: TypeId) -> Option<&mut dyn Any>
fn extension_by_type_id(&mut self, type_id: TypeId) -> Option<&mut dyn Any>
Tries to find a registered extension by the given type_id and returns it as a &mut dyn Any.
It is advised to use ExternalitiesExt::extension
instead of this function to get type system support and automatic type downcasting.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".