pub trait Appendable {
    // Required methods
    fn append_bytes(&mut self, bytes: &[u8]) -> Result<(), BufferTooSmall>;
    fn append_bytes_zeroed(
        &mut self,
        len: usize
    ) -> Result<&mut [u8], BufferTooSmall>;
    fn bytes_written(&self) -> usize;
    fn can_append(&self, bytes: usize) -> bool;

    // Provided methods
    fn append_value<T>(&mut self, value: &T) -> Result<(), BufferTooSmall>
       where T: AsBytes + NoCell + ?Sized { ... }
    fn append_byte(&mut self, byte: u8) -> Result<(), BufferTooSmall> { ... }
    fn append_value_zeroed<T>(
        &mut self
    ) -> Result<Ref<&mut [u8], T>, BufferTooSmall>
       where T: FromBytes + Unaligned { ... }
    fn append_array_zeroed<T>(
        &mut self,
        num_elems: usize
    ) -> Result<Ref<&mut [u8], [T]>, BufferTooSmall>
       where T: FromBytes + Unaligned { ... }
}

Required Methods§

source

fn append_bytes(&mut self, bytes: &[u8]) -> Result<(), BufferTooSmall>

source

fn append_bytes_zeroed( &mut self, len: usize ) -> Result<&mut [u8], BufferTooSmall>

source

fn bytes_written(&self) -> usize

source

fn can_append(&self, bytes: usize) -> bool

Provided Methods§

source

fn append_value<T>(&mut self, value: &T) -> Result<(), BufferTooSmall>
where T: AsBytes + NoCell + ?Sized,

source

fn append_byte(&mut self, byte: u8) -> Result<(), BufferTooSmall>

source

fn append_value_zeroed<T>( &mut self ) -> Result<Ref<&mut [u8], T>, BufferTooSmall>
where T: FromBytes + Unaligned,

source

fn append_array_zeroed<T>( &mut self, num_elems: usize ) -> Result<Ref<&mut [u8], [T]>, BufferTooSmall>
where T: FromBytes + Unaligned,

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Appendable for Vec<u8>

source§

fn append_bytes(&mut self, bytes: &[u8]) -> Result<(), BufferTooSmall>

source§

fn append_bytes_zeroed( &mut self, len: usize ) -> Result<&mut [u8], BufferTooSmall>

source§

fn bytes_written(&self) -> usize

source§

fn can_append(&self, _bytes: usize) -> bool

Implementors§