pub trait DeriveSuperSegmentsForBlockChainInfo: Send + Sync {
// Required methods
fn get_genesis_segment_root(
&self,
) -> Result<SegmentRoot, DeriveSuperSegmentForBlockError>;
fn segment_roots_for_block(
&self,
block_number: BlockNumber,
) -> impl ExactSizeIterator<Item = ShardSegmentRoot> + Send + Sync + 'static;
fn previous_super_segment_header(
&self,
block_number: BlockNumber,
) -> Option<SuperSegmentHeader>;
fn shard_segment_roots(
&self,
block_number: BlockNumber,
) -> Result<StdArc<[ShardSegmentRoot]>, ShardSegmentRootsError>;
}Expand description
Chain info for derive_super_segments_for_block().
Must have access to enough parent blocks.
Required Methods§
Sourcefn get_genesis_segment_root(
&self,
) -> Result<SegmentRoot, DeriveSuperSegmentForBlockError>
fn get_genesis_segment_root( &self, ) -> Result<SegmentRoot, DeriveSuperSegmentForBlockError>
Get genesis segment root of the beacon chain
Sourcefn segment_roots_for_block(
&self,
block_number: BlockNumber,
) -> impl ExactSizeIterator<Item = ShardSegmentRoot> + Send + Sync + 'static
fn segment_roots_for_block( &self, block_number: BlockNumber, ) -> impl ExactSizeIterator<Item = ShardSegmentRoot> + Send + Sync + 'static
Get segment roots that are expected to be included at specified block number
Sourcefn previous_super_segment_header(
&self,
block_number: BlockNumber,
) -> Option<SuperSegmentHeader>
fn previous_super_segment_header( &self, block_number: BlockNumber, ) -> Option<SuperSegmentHeader>
Returns the previous super segment header for the block built with the specified number
Sourcefn shard_segment_roots(
&self,
block_number: BlockNumber,
) -> Result<StdArc<[ShardSegmentRoot]>, ShardSegmentRootsError>
fn shard_segment_roots( &self, block_number: BlockNumber, ) -> Result<StdArc<[ShardSegmentRoot]>, ShardSegmentRootsError>
Returns intermediate and leaf shard segment roots included in the specified block number.
NOTE: Since blocks at this depth are already confirmed, only a block number is needed as a reference.
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.