pub trait GenericOwnedBlock:
Clone
+ Debug
+ Send
+ Sync
+ Into<OwnedBlock>
+ Any
+ 'static {
type Header: GenericOwnedBlockHeader;
type Body: GenericOwnedBlockBody;
type Block<'a>: GenericBlock<'a>
where Self: 'a;
const SHARD_KIND: RealShardKind;
// Required methods
fn split(self) -> (Self::Header, Self::Body);
fn header(&self) -> &Self::Header;
fn body(&self) -> &Self::Body;
fn from_buffers(
header: SharedAlignedBuffer,
body: SharedAlignedBuffer,
) -> Option<Self>;
fn block(&self) -> Self::Block<'_>;
}ⓘ This trait cannot be implemented outside
ab_core_primitives.Expand description
Generic owned block.
Can’t be implemented outside of this module, so that code generic over owned blocks can rely on the header corresponding to the body, like with concrete owned blocks.
Required Associated Constants§
Sourceconst SHARD_KIND: RealShardKind
const SHARD_KIND: RealShardKind
Shard kind
Required Associated Types§
Sourcetype Header: GenericOwnedBlockHeader
type Header: GenericOwnedBlockHeader
Block header type
Sourcetype Body: GenericOwnedBlockBody
type Body: GenericOwnedBlockBody
Block body type
Sourcetype Block<'a>: GenericBlock<'a>where
Self: 'a,
type Block<'a>: GenericBlock<'a>where
Self: 'a,
Block
Required Methods§
Sourcefn from_buffers(
header: SharedAlignedBuffer,
body: SharedAlignedBuffer,
) -> Option<Self>
fn from_buffers( header: SharedAlignedBuffer, body: SharedAlignedBuffer, ) -> Option<Self>
Create owned block from buffers
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".