Skip to main content

Part

Trait Part 

Source
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§

Source

fn id(&self) -> u8

Source

fn amount(&self) -> u32

Source

fn blocks(&self) -> Vec<Self::Block>

Source

fn from_data(id: u8, amount: u32, blocks: Vec<Self::Block>) -> Self

Source

fn decode_header(data: &[u8], offset: &mut usize) -> Option<(u8, u32)>

Source

fn encode_header(&self, data: &mut Vec<u8>)

Provided Methods§

Source

fn decode( data: &[u8], offset: &mut usize, meta: <<Self::Block as Block>::Track as Track>::Metadata, ) -> Option<Self>

Source

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".

Implementors§