pub struct L1Retrieval<DAP, P>where
DAP: DataAvailabilityProvider,
P: L1RetrievalProvider + OriginAdvancer + OriginProvider + SignalReceiver,{
pub prev: P,
pub provider: DAP,
pub next: Option<BlockInfo>,
}
Expand description
The L1Retrieval stage of the derivation pipeline.
For each L1 BlockInfo pulled from the L1Traversal stage, L1Retrieval fetches the associated data from a specified DataAvailabilityProvider.
Fields§
§prev: P
The previous stage in the pipeline.
provider: DAP
The data availability provider to use for the L1 retrieval stage.
next: Option<BlockInfo>
The current block ref.
Implementations§
Source§impl<DAP, P> L1Retrieval<DAP, P>where
DAP: DataAvailabilityProvider,
P: L1RetrievalProvider + OriginAdvancer + OriginProvider + SignalReceiver,
impl<DAP, P> L1Retrieval<DAP, P>where
DAP: DataAvailabilityProvider,
P: L1RetrievalProvider + OriginAdvancer + OriginProvider + SignalReceiver,
Sourcepub const fn new(prev: P, provider: DAP) -> L1Retrieval<DAP, P>
pub const fn new(prev: P, provider: DAP) -> L1Retrieval<DAP, P>
Creates a new L1Retrieval stage with the previous L1Traversal stage and given DataAvailabilityProvider.
Trait Implementations§
Source§impl<DAP, P> Debug for L1Retrieval<DAP, P>where
DAP: Debug + DataAvailabilityProvider,
P: Debug + L1RetrievalProvider + OriginAdvancer + OriginProvider + SignalReceiver,
impl<DAP, P> Debug for L1Retrieval<DAP, P>where
DAP: Debug + DataAvailabilityProvider,
P: Debug + L1RetrievalProvider + OriginAdvancer + OriginProvider + SignalReceiver,
Source§impl<DAP, P> FrameQueueProvider for L1Retrieval<DAP, P>where
DAP: DataAvailabilityProvider + Send,
P: L1RetrievalProvider + OriginAdvancer + OriginProvider + SignalReceiver + Send,
impl<DAP, P> FrameQueueProvider for L1Retrieval<DAP, P>where
DAP: DataAvailabilityProvider + Send,
P: L1RetrievalProvider + OriginAdvancer + OriginProvider + SignalReceiver + Send,
Source§type Item = <DAP as DataAvailabilityProvider>::Item
type Item = <DAP as DataAvailabilityProvider>::Item
An item that can be converted into a byte array.
Source§fn next_data<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<<L1Retrieval<DAP, P> as FrameQueueProvider>::Item, PipelineErrorKind>> + Send + 'async_trait>>where
'life0: 'async_trait,
L1Retrieval<DAP, P>: 'async_trait,
fn next_data<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<<L1Retrieval<DAP, P> as FrameQueueProvider>::Item, PipelineErrorKind>> + Send + 'async_trait>>where
'life0: 'async_trait,
L1Retrieval<DAP, P>: 'async_trait,
Retrieves the next data item from the L1 retrieval stage.
If there is data, it pushes it into the next stage.
If there is no data, it returns an error.
Source§impl<DAP, P> OriginAdvancer for L1Retrieval<DAP, P>where
DAP: DataAvailabilityProvider + Send,
P: L1RetrievalProvider + OriginAdvancer + OriginProvider + SignalReceiver + Send,
impl<DAP, P> OriginAdvancer for L1Retrieval<DAP, P>where
DAP: DataAvailabilityProvider + Send,
P: L1RetrievalProvider + OriginAdvancer + OriginProvider + SignalReceiver + Send,
Source§fn advance_origin<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), PipelineErrorKind>> + Send + 'async_trait>>where
'life0: 'async_trait,
L1Retrieval<DAP, P>: 'async_trait,
fn advance_origin<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), PipelineErrorKind>> + Send + 'async_trait>>where
'life0: 'async_trait,
L1Retrieval<DAP, P>: 'async_trait,
Advances the internal state of the lowest stage to the next l1 origin.
This method is the equivalent of the reference implementation
advance_l1_block
.Source§impl<DAP, P> OriginProvider for L1Retrieval<DAP, P>where
DAP: DataAvailabilityProvider,
P: L1RetrievalProvider + OriginAdvancer + OriginProvider + SignalReceiver,
impl<DAP, P> OriginProvider for L1Retrieval<DAP, P>where
DAP: DataAvailabilityProvider,
P: L1RetrievalProvider + OriginAdvancer + OriginProvider + SignalReceiver,
Source§impl<DAP, P> SignalReceiver for L1Retrieval<DAP, P>where
DAP: DataAvailabilityProvider + Send,
P: L1RetrievalProvider + OriginAdvancer + OriginProvider + SignalReceiver + Send,
impl<DAP, P> SignalReceiver for L1Retrieval<DAP, P>where
DAP: DataAvailabilityProvider + Send,
P: L1RetrievalProvider + OriginAdvancer + OriginProvider + SignalReceiver + Send,
Auto Trait Implementations§
impl<DAP, P> Freeze for L1Retrieval<DAP, P>
impl<DAP, P> RefUnwindSafe for L1Retrieval<DAP, P>where
P: RefUnwindSafe,
DAP: RefUnwindSafe,
impl<DAP, P> Send for L1Retrieval<DAP, P>
impl<DAP, P> Sync for L1Retrieval<DAP, P>
impl<DAP, P> Unpin for L1Retrieval<DAP, P>
impl<DAP, P> UnwindSafe for L1Retrieval<DAP, P>where
P: UnwindSafe,
DAP: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more