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) -> Self
pub const fn new(prev: P, provider: DAP) -> Self
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: DataAvailabilityProvider + Debug,
P: L1RetrievalProvider + OriginAdvancer + OriginProvider + SignalReceiver + Debug,
impl<DAP, P> Debug for L1Retrieval<DAP, P>where
DAP: DataAvailabilityProvider + Debug,
P: L1RetrievalProvider + OriginAdvancer + OriginProvider + SignalReceiver + Debug,
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 = PipelineResult<Self::Item>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn next_data<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = PipelineResult<Self::Item>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: '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 = PipelineResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn advance_origin<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = PipelineResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: '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