pub trait Extension: Serialize + DeserializeOwned + Clone {
    type Forks: IsForks;

    fn get<T: 'static>(&self) -> Option<&T>;
    fn get_any(&self, t: TypeId) -> &dyn Any;
    fn get_any_mut(&mut self, t: TypeId) -> &mut dyn Any;

    fn forks<BlockNumber, T>(&self) -> Option<Forks<BlockNumber, T>>
where
BlockNumber: Ord + Clone + 'static,
T: Group + 'static,
<Self::Forks as IsForks>::Extension: Extension,
<<Self::Forks as IsForks>::Extension as Group>::Fork: Extension
, { ... } }
Expand description

A collection of ChainSpec extensions.

This type can be passed around and allows the core modules to request a strongly-typed, but optional configuration.

Required Associated Types§

source

type Forks: IsForks

Required Methods§

source

fn get<T: 'static>(&self) -> Option<&T>

Get an extension of specific type.

source

fn get_any(&self, t: TypeId) -> &dyn Any

Get an extension of specific type as reference to Any.

source

fn get_any_mut(&mut self, t: TypeId) -> &mut dyn Any

Get an extension of specific type as mutable reference to Any.

Provided Methods§

source

fn forks<BlockNumber, T>(&self) -> Option<Forks<BlockNumber, T>>where
BlockNumber: Ord + Clone + 'static,
T: Group + 'static,
<Self::Forks as IsForks>::Extension: Extension,
<<Self::Forks as IsForks>::Extension as Group>::Fork: Extension,

Get forkable extensions of specific type.

Implementors§

source§

impl Extension for NoExtension

§

type Forks = Option<()>

source§

impl<B, E> Extension for Forks<B, E>where
B: Serialize + DeserializeOwned + Ord + Clone + 'static,
E: Extension + Group + 'static,

§

type Forks = Forks<B, E>