Skip to main content

BlockBodyWriter

Trait BlockBodyWriter 

Source
pub trait BlockBodyWriter<Provider, Body>
where Body: BlockBody,
{ // Required methods fn write_block_bodies( &self, provider: &Provider, bodies: Vec<(u64, Option<&Body>)>, ) -> Result<(), ProviderError>; fn remove_block_bodies_above( &self, provider: &Provider, block: u64, ) -> Result<(), ProviderError>; }
Expand description

Trait that implements how block bodies are written to the storage.

Note: Within the current abstraction, this should only write to tables unrelated to transactions. Writing of transactions is handled separately.

Required Methods§

Source

fn write_block_bodies( &self, provider: &Provider, bodies: Vec<(u64, Option<&Body>)>, ) -> Result<(), ProviderError>

Writes a set of block bodies to the storage.

Source

fn remove_block_bodies_above( &self, provider: &Provider, block: u64, ) -> Result<(), ProviderError>

Removes all block bodies above the given block number from the database.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementations on Foreign Types§

Source§

impl<'a, Provider, Body, T> BlockBodyWriter<Provider, Body> for &'a T
where Body: BlockBody, T: 'a + BlockBodyWriter<Provider, Body> + ?Sized,

Source§

fn write_block_bodies( &self, provider: &Provider, bodies: Vec<(u64, Option<&Body>)>, ) -> Result<(), ProviderError>

Source§

fn remove_block_bodies_above( &self, provider: &Provider, block: u64, ) -> Result<(), ProviderError>

Source§

impl<Provider, Body, T> BlockBodyWriter<Provider, Body> for Arc<T>
where Body: BlockBody, T: BlockBodyWriter<Provider, Body> + ?Sized,

Source§

fn write_block_bodies( &self, provider: &Provider, bodies: Vec<(u64, Option<&Body>)>, ) -> Result<(), ProviderError>

Source§

fn remove_block_bodies_above( &self, provider: &Provider, block: u64, ) -> Result<(), ProviderError>

Implementors§

Source§

impl<Provider, T, H> BlockBodyWriter<Provider, BlockBody<T, H>> for EmptyBodyStorage<T, H>
where T: SignedTransaction, H: FullBlockHeader,

Source§

impl<Provider, T, H> BlockBodyWriter<Provider, BlockBody<T, H>> for EthStorage<T, H>
where Provider: DBProvider, <Provider as DBProvider>::Tx: DbTxMut, T: SignedTransaction, H: FullBlockHeader,