pub trait Part: Sized {
type Block: Block;
// Required methods
fn id(&self) -> u8;
fn amount(&self) -> u32;
fn blocks(&self) -> Vec<Self::Block>;
fn from_data(id: u8, amount: u32, blocks: Vec<Self::Block>) -> Self;
fn decode_header(data: &[u8], offset: &mut usize) -> Option<(u8, u32)>;
fn encode_header(&self, data: &mut Vec<u8>);
// Provided methods
fn decode(
data: &[u8],
offset: &mut usize,
meta: <<Self::Block as Block>::Track as Track>::Metadata,
) -> Option<Self> { ... }
fn encode(
&self,
data: &mut Vec<u8>,
meta: <<Self::Block as Block>::Track as Track>::Metadata,
) { ... }
}Required Associated Types§
Required Methods§
fn id(&self) -> u8
fn amount(&self) -> u32
fn blocks(&self) -> Vec<Self::Block>
fn from_data(id: u8, amount: u32, blocks: Vec<Self::Block>) -> Self
fn decode_header(data: &[u8], offset: &mut usize) -> Option<(u8, u32)>
fn encode_header(&self, data: &mut Vec<u8>)
Provided Methods§
fn decode( data: &[u8], offset: &mut usize, meta: <<Self::Block as Block>::Track as Track>::Metadata, ) -> Option<Self>
fn encode( &self, data: &mut Vec<u8>, meta: <<Self::Block as Block>::Track as Track>::Metadata, )
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".