DatabaseProviderFactory

Trait DatabaseProviderFactory 

Source
pub trait DatabaseProviderFactory: Send + Sync {
    type DB: Database;
    type Provider: DBProvider<Tx = <Self::DB as Database>::TX>;
    type ProviderRW: DBProvider<Tx = <Self::DB as Database>::TXMut>;

    // Required methods
    fn database_provider_ro(&self) -> Result<Self::Provider, ProviderError>;
    fn database_provider_rw(&self) -> Result<Self::ProviderRW, ProviderError>;
}
Expand description

Database provider factory.

Required Associated Types§

Source

type DB: Database

Database this factory produces providers for.

Source

type Provider: DBProvider<Tx = <Self::DB as Database>::TX>

Provider type returned by the factory.

Source

type ProviderRW: DBProvider<Tx = <Self::DB as Database>::TXMut>

Read-write provider type returned by the factory.

Required Methods§

Source

fn database_provider_ro(&self) -> Result<Self::Provider, ProviderError>

Create new read-only database provider.

Source

fn database_provider_rw(&self) -> Result<Self::ProviderRW, ProviderError>

Create new read-write database provider.

Implementations on Foreign Types§

Source§

impl<'a, T> DatabaseProviderFactory for &'a T

Source§

impl<T> DatabaseProviderFactory for Arc<T>

Implementors§

Source§

impl<ChainSpec, N> DatabaseProviderFactory for NoopProvider<ChainSpec, N>
where ChainSpec: Send + Sync, N: NodePrimitives,

Available on crate feature db-api only.
Source§

type DB = DatabaseMock

Source§

type Provider = NoopProvider<ChainSpec, N>

Source§

type ProviderRW = NoopProvider<ChainSpec, N>

Source§

impl<N> DatabaseProviderFactory for BlockchainProvider<N>

Source§

impl<N> DatabaseProviderFactory for ProviderFactory<N>

Source§

type DB = <N as NodeTypesWithDB>::DB

Source§

type Provider = DatabaseProvider<<<N as NodeTypesWithDB>::DB as Database>::TX, N>

Source§

type ProviderRW = DatabaseProvider<<<N as NodeTypesWithDB>::DB as Database>::TXMut, N>

Source§

impl<T, ChainSpec> DatabaseProviderFactory for MockEthProvider<T, ChainSpec>
where T: NodePrimitives, ChainSpec: EthChainSpec + Clone + 'static,

Source§

type DB = DatabaseMock

Source§

type Provider = MockEthProvider<T, ChainSpec>

Source§

type ProviderRW = MockEthProvider<T, ChainSpec>