Skip to main content

BlockSubscriber

Trait BlockSubscriber 

Source
pub trait BlockSubscriber:
    Send
    + Sync
    + 'static {
    type Prepared: Send;
    type PrepareBlockFut<'a>: Future<Output = Result<Self::Prepared>> + Send + 'a;
    type HandleBlockFut<'a>: Future<Output = Result<()>> + Send + 'a;

    // Required methods
    fn prepare_block<'a>(
        &'a self,
        cx: &'a BlockSubscriberContext,
    ) -> Self::PrepareBlockFut<'a>;
    fn handle_block<'a>(
        &'a self,
        cx: &'a BlockSubscriberContext,
        prepared: Self::Prepared,
    ) -> Self::HandleBlockFut<'a>;
}

Required Associated Types§

Source

type Prepared: Send

Source

type PrepareBlockFut<'a>: Future<Output = Result<Self::Prepared>> + Send + 'a

Source

type HandleBlockFut<'a>: Future<Output = Result<()>> + Send + 'a

Required Methods§

Source

fn prepare_block<'a>( &'a self, cx: &'a BlockSubscriberContext, ) -> Self::PrepareBlockFut<'a>

Source

fn handle_block<'a>( &'a self, cx: &'a BlockSubscriberContext, prepared: Self::Prepared, ) -> Self::HandleBlockFut<'a>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<T0, T1> BlockSubscriber for (T0, T1)

Source§

type Prepared = (<T0 as BlockSubscriber>::Prepared, <T1 as BlockSubscriber>::Prepared)

Source§

type PrepareBlockFut<'a> = Pin<Box<dyn Future<Output = Result<<(T0, T1) as BlockSubscriber>::Prepared, Error>> + Send + 'a>>

Source§

type HandleBlockFut<'a> = Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>

Source§

fn prepare_block<'a>( &'a self, cx: &'a BlockSubscriberContext, ) -> Self::PrepareBlockFut<'a>

Source§

fn handle_block<'a>( &'a self, cx: &'a BlockSubscriberContext, (a, b): Self::Prepared, ) -> Self::HandleBlockFut<'a>

Source§

impl<T0, T1, T2> BlockSubscriber for (T0, T1, T2)

Source§

type Prepared = (<T0 as BlockSubscriber>::Prepared, <T1 as BlockSubscriber>::Prepared, <T2 as BlockSubscriber>::Prepared)

Source§

type PrepareBlockFut<'a> = Pin<Box<dyn Future<Output = Result<<(T0, T1, T2) as BlockSubscriber>::Prepared, Error>> + Send + 'a>>

Source§

type HandleBlockFut<'a> = Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>

Source§

fn prepare_block<'a>( &'a self, cx: &'a BlockSubscriberContext, ) -> Self::PrepareBlockFut<'a>

Source§

fn handle_block<'a>( &'a self, cx: &'a BlockSubscriberContext, (a, b, c): Self::Prepared, ) -> Self::HandleBlockFut<'a>

Source§

impl<T0, T1, T2, T3> BlockSubscriber for (T0, T1, T2, T3)

Source§

type Prepared = (<T0 as BlockSubscriber>::Prepared, <T1 as BlockSubscriber>::Prepared, <T2 as BlockSubscriber>::Prepared, <T3 as BlockSubscriber>::Prepared)

Source§

type PrepareBlockFut<'a> = Pin<Box<dyn Future<Output = Result<<(T0, T1, T2, T3) as BlockSubscriber>::Prepared, Error>> + Send + 'a>>

Source§

type HandleBlockFut<'a> = Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>

Source§

fn prepare_block<'a>( &'a self, cx: &'a BlockSubscriberContext, ) -> Self::PrepareBlockFut<'a>

Source§

fn handle_block<'a>( &'a self, cx: &'a BlockSubscriberContext, (a, b, c, d): Self::Prepared, ) -> Self::HandleBlockFut<'a>

Source§

impl<T0, T1, T2, T3, T4> BlockSubscriber for (T0, T1, T2, T3, T4)

Source§

type Prepared = (<T0 as BlockSubscriber>::Prepared, <T1 as BlockSubscriber>::Prepared, <T2 as BlockSubscriber>::Prepared, <T3 as BlockSubscriber>::Prepared, <T4 as BlockSubscriber>::Prepared)

Source§

type PrepareBlockFut<'a> = Pin<Box<dyn Future<Output = Result<<(T0, T1, T2, T3, T4) as BlockSubscriber>::Prepared, Error>> + Send + 'a>>

Source§

type HandleBlockFut<'a> = Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>

Source§

fn prepare_block<'a>( &'a self, cx: &'a BlockSubscriberContext, ) -> Self::PrepareBlockFut<'a>

Source§

fn handle_block<'a>( &'a self, cx: &'a BlockSubscriberContext, (a, b, c, d, e): Self::Prepared, ) -> Self::HandleBlockFut<'a>

Source§

impl<T: BlockSubscriber> BlockSubscriber for Option<T>

Source§

type Prepared = Option<<T as BlockSubscriber>::Prepared>

Source§

type PrepareBlockFut<'a> = OptionPrepareFut<<T as BlockSubscriber>::PrepareBlockFut<'a>>

Source§

type HandleBlockFut<'a> = OptionHandleFut<<T as BlockSubscriber>::HandleBlockFut<'a>>

Source§

fn prepare_block<'a>( &'a self, cx: &'a BlockSubscriberContext, ) -> Self::PrepareBlockFut<'a>

Source§

fn handle_block<'a>( &'a self, cx: &'a BlockSubscriberContext, prepared: Self::Prepared, ) -> Self::HandleBlockFut<'a>

Source§

impl<T: BlockSubscriber> BlockSubscriber for Box<T>

Source§

impl<T: BlockSubscriber> BlockSubscriber for Arc<T>

Implementors§

Source§

impl BlockSubscriber for ValidatorsResolver

Source§

impl BlockSubscriber for BlockSaver

Source§

impl BlockSubscriber for MetricsSubscriber

Source§

impl BlockSubscriber for NoopSubscriber

Source§

impl<S> BlockSubscriber for ArchiveHandler<S>

Source§

impl<S> BlockSubscriber for ShardStateApplier<S>
where S: StateSubscriber,

Source§

type Prepared = StateApplierPrepared

Source§

type PrepareBlockFut<'a> = Pin<Box<dyn Future<Output = Result<<ShardStateApplier<S> as BlockSubscriber>::Prepared, Error>> + Send + 'a>>

Source§

type HandleBlockFut<'a> = Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>

Source§

impl<T1: BlockSubscriber, T2: BlockSubscriber> BlockSubscriber for ChainSubscriber<T1, T2>

Source§

type Prepared = (<T1 as BlockSubscriber>::Prepared, <T2 as BlockSubscriber>::Prepared)

Source§

type PrepareBlockFut<'a> = Pin<Box<dyn Future<Output = Result<<ChainSubscriber<T1, T2> as BlockSubscriber>::Prepared, Error>> + Send + 'a>>

Source§

type HandleBlockFut<'a> = Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>