Skip to main content

ExtensionStore

Trait ExtensionStore 

Source
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§

Source

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.

Source

fn register_extension_with_type_id( &mut self, type_id: TypeId, extension: Box<dyn Extension>, ) -> Result<(), Error>

Register extension extension with specified type_id.

It should return error if extension is already registered.

Source

fn deregister_extension_by_type_id( &mut self, type_id: TypeId, ) -> Result<(), Error>

Deregister extension with specified ‘type_id’ and drop it.

It should return error if extension is not registered.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§