pub trait WriteContext {
    fn write_bytes(&mut self, data: &[u8]) -> Result<(), WriteError>;
    fn write_zeros(&mut self, count: usize) -> Result<(), WriteError>;
    fn bytes_written(&self) -> usize;
    fn write_placeholder<T, HostType>(
        &mut self,
        placeholder: Placeholder<T, HostType>,
        val: HostType
    ) -> Result<T::Output, WriteError>
    where
        T: WriteBinary<HostType>
; fn write_array<'a, T>(
        &mut self,
        array: &ReadArray<'a, T>
    ) -> Result<(), WriteError>
    where
        Self: Sized,
        T: ReadUnchecked<'a> + WriteBinary<<T as ReadUnchecked<'a>>::HostType>
, { ... } fn write_vec<'a, T>(
        &mut self,
        vec: Vec<<T as ReadUnchecked<'a>>::HostType>
    ) -> Result<(), WriteError>
    where
        Self: Sized,
        T: ReadUnchecked<'a> + WriteBinary<<T as ReadUnchecked<'a>>::HostType>
, { ... } fn placeholder<'a, T, HostType>(
        &mut self
    ) -> Result<Placeholder<T, HostType>, WriteError>
    where
        T: WriteBinary<HostType> + ReadUnchecked<'a>
, { ... } fn reserve<'a, T, HostType>(
        &mut self,
        count: usize
    ) -> Result<Placeholder<T, &'a HostType>, WriteError>
    where
        T: WriteBinary<&'a HostType>
, { ... } fn placeholder_array<'a, T, HostType>(
        &mut self,
        count: usize
    ) -> Result<Vec<Placeholder<T, HostType>>, WriteError>
    where
        T: WriteBinary<HostType> + ReadUnchecked<'a>
, { ... } }
Expand description

Trait for types that can have binary data written to them.

Required Methods

Write a slice of bytes to a WriteContext.

Write the specified number of zero bytes to the WriteContext.

The total number of bytes written so far.

Consumes the placeholder and writes the supplied value into it

Provided Methods

Write a ReadArray instance to a WriteContext.

Write a Vec into a WriteContext.

Return a placeholder to T in the context for filling in later.

Reserve space for count bytes in the context for filling in later.

Return a Vec of count placeholders of type T.

Implementors