Skip to main content

Encoder

Trait Encoder 

Source
pub trait Encoder: Sized {
    // Required methods
    fn encode_byte(&mut self, byte: u8) -> Result<(), EncodeError>;
    fn write_all(&mut self, buf: impl AsRef<[u8]>) -> Result<(), EncodeError>;

    // Provided methods
    fn encode_bytes(
        &mut self,
        bytes: impl AsRef<[u8]>,
    ) -> Result<(), EncodeError> { ... }
    fn encode_magic(&mut self) -> Result<(), EncodeError> { ... }
    fn encode(&mut self, value: impl Encode) -> Result<(), EncodeError> { ... }
}
Expand description

Helper trait for writing OpenTimestamps primitives to a byte stream.

Required Methods§

Source

fn encode_byte(&mut self, byte: u8) -> Result<(), EncodeError>

Encodes a single byte to the writer.

Source

fn write_all(&mut self, buf: impl AsRef<[u8]>) -> Result<(), EncodeError>

Provided Methods§

Source

fn encode_bytes(&mut self, bytes: impl AsRef<[u8]>) -> Result<(), EncodeError>

Encodes a byte slice prefixed with its length.

Source

fn encode_magic(&mut self) -> Result<(), EncodeError>

Writes the OpenTimestamps magic sequence to the stream.

Source

fn encode(&mut self, value: impl Encode) -> Result<(), EncodeError>

Encodes a value implementing the Encode trait.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Encoder for Vec<u8>

Source§

fn encode_byte(&mut self, byte: u8) -> Result<(), EncodeError>

Source§

fn write_all(&mut self, buf: impl AsRef<[u8]>) -> Result<(), EncodeError>

Implementors§

Source§

impl<A: Allocator> Encoder for uts_core::alloc::vec::Vec<u8, A>

Source§

impl<W: Write> Encoder for Writer<W>