Pack

Trait Pack 

Source
pub trait Pack: Sized {
    // Required methods
    fn pack(&self, writer: &mut impl Write) -> Result<usize>;
    fn unpack(reader: &mut impl Read) -> Result<Self>;
}
Expand description

Implemented on types that can be packed into a platform-independent byte-stream.

This is a requirement for types that implement the dedupe encoding/decoding strategy.

Required Methods§

Source

fn pack(&self, writer: &mut impl Write) -> Result<usize>

Writes self to writer using a stable, platform‑independent layout.

The stream is any type implementing Write.

Source

fn unpack(reader: &mut impl Read) -> Result<Self>

Reads Self from reader using the format produced by Pack::pack.

The source is any type implementing Read.

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 Pack for f32

Source§

fn pack(&self, writer: &mut impl Write) -> Result<usize>

Source§

fn unpack(reader: &mut impl Read) -> Result<Self>

Source§

impl Pack for f64

Source§

fn pack(&self, writer: &mut impl Write) -> Result<usize>

Source§

fn unpack(reader: &mut impl Read) -> Result<Self>

Source§

impl Pack for i8

Source§

fn pack(&self, writer: &mut impl Write) -> Result<usize>

Source§

fn unpack(reader: &mut impl Read) -> Result<Self>

Source§

impl Pack for i16

Source§

fn pack(&self, writer: &mut impl Write) -> Result<usize>

Source§

fn unpack(reader: &mut impl Read) -> Result<Self>

Source§

impl Pack for i32

Source§

fn pack(&self, writer: &mut impl Write) -> Result<usize>

Source§

fn unpack(reader: &mut impl Read) -> Result<Self>

Source§

impl Pack for i64

Source§

fn pack(&self, writer: &mut impl Write) -> Result<usize>

Source§

fn unpack(reader: &mut impl Read) -> Result<Self>

Source§

impl Pack for i128

Source§

fn pack(&self, writer: &mut impl Write) -> Result<usize>

Source§

fn unpack(reader: &mut impl Read) -> Result<Self>

Source§

impl Pack for isize

Source§

fn pack(&self, writer: &mut impl Write) -> Result<usize>

Source§

fn unpack(reader: &mut impl Read) -> Result<Self>

Source§

impl Pack for u8

Source§

fn pack(&self, writer: &mut impl Write) -> Result<usize>

Source§

fn unpack(reader: &mut impl Read) -> Result<Self>

Source§

impl Pack for u16

Source§

fn pack(&self, writer: &mut impl Write) -> Result<usize>

Source§

fn unpack(reader: &mut impl Read) -> Result<Self>

Source§

impl Pack for u32

Source§

fn pack(&self, writer: &mut impl Write) -> Result<usize>

Source§

fn unpack(reader: &mut impl Read) -> Result<Self>

Source§

impl Pack for u64

Source§

fn pack(&self, writer: &mut impl Write) -> Result<usize>

Source§

fn unpack(reader: &mut impl Read) -> Result<Self>

Source§

impl Pack for u128

Source§

fn pack(&self, writer: &mut impl Write) -> Result<usize>

Source§

fn unpack(reader: &mut impl Read) -> Result<Self>

Source§

impl Pack for usize

Source§

fn pack(&self, writer: &mut impl Write) -> Result<usize>

Source§

fn unpack(reader: &mut impl Read) -> Result<Self>

Source§

impl<const N: usize, T: Pack> Pack for [T; N]

Source§

fn pack(&self, writer: &mut impl Write) -> Result<usize>

Source§

fn unpack(reader: &mut impl Read) -> Result<Self>

Implementors§