Unpacker

Trait Unpacker 

Source
pub trait Unpacker: Sized {
    // Required method
    fn unpack(reader: &mut Bytes) -> Result<Self>;
}
Expand description

Trait for types that can be unpacked from a compact binary format.

This trait provides compact deserialization without schema evolution support. Use this when you need maximum performance and don’t require forward/backward compatibility.

§Errors

Returns EncoderError if the value cannot be unpacked or the data is invalid.

Required Methods§

Source

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

Unpack the value from the given buffer without schema evolution support.

This method reads data from a compact format without field IDs or type tags. The format is not schema-evolution-friendly but offers better performance.

§Arguments
  • reader - The buffer to read the packed bytes from.

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 Unpacker for bool

Unpacks a bool from a single byte with relaxed validation.

0 is interpreted as false, any non-zero value is interpreted as true. No error checking is performed for invalid values.

Source§

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

Source§

impl Unpacker for char

Source§

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

Source§

impl Unpacker for f32

Source§

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

Unpacks an f32 from either TAG_NONE (0.0) or TAG_F32 + 4 bytes (little-endian IEEE 754).

Source§

impl Unpacker for f64

Source§

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

Unpacks an f64 from either TAG_NONE (0.0) or TAG_F64 + 8 bytes (little-endian IEEE 754).

Source§

impl Unpacker for i8

Source§

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

Source§

impl Unpacker for i16

Source§

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

Source§

impl Unpacker for i32

Source§

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

Source§

impl Unpacker for i64

Source§

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

Source§

impl Unpacker for i128

Source§

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

Source§

impl Unpacker for isize

Source§

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

Source§

impl Unpacker for u8

Source§

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

Source§

impl Unpacker for u16

Source§

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

Source§

impl Unpacker for u32

Source§

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

Source§

impl Unpacker for u64

Source§

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

Source§

impl Unpacker for u128

Source§

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

Source§

impl Unpacker for ()

Source§

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

Source§

impl Unpacker for usize

Source§

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

Source§

impl Unpacker for String

Source§

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

Source§

impl Unpacker for Bytes

Source§

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

Source§

impl<K: Unpacker + Eq + Hash, V: Unpacker> Unpacker for HashMap<K, V>

Source§

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

Source§

impl<K: Unpacker + Ord, V: Unpacker> Unpacker for BTreeMap<K, V>

Source§

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

Source§

impl<T0: Unpacker> Unpacker for (T0,)

Source§

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

Source§

impl<T0: Unpacker, T1: Unpacker> Unpacker for (T0, T1)

Source§

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

Source§

impl<T0: Unpacker, T1: Unpacker, T2: Unpacker> Unpacker for (T0, T1, T2)

Source§

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

Source§

impl<T0: Unpacker, T1: Unpacker, T2: Unpacker, T3: Unpacker> Unpacker for (T0, T1, T2, T3)

Source§

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

Source§

impl<T0: Unpacker, T1: Unpacker, T2: Unpacker, T3: Unpacker, T4: Unpacker> Unpacker for (T0, T1, T2, T3, T4)

Source§

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

Source§

impl<T0: Unpacker, T1: Unpacker, T2: Unpacker, T3: Unpacker, T4: Unpacker, T5: Unpacker> Unpacker for (T0, T1, T2, T3, T4, T5)

Source§

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

Source§

impl<T0: Unpacker, T1: Unpacker, T2: Unpacker, T3: Unpacker, T4: Unpacker, T5: Unpacker, T6: Unpacker> Unpacker for (T0, T1, T2, T3, T4, T5, T6)

Source§

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

Source§

impl<T0: Unpacker, T1: Unpacker, T2: Unpacker, T3: Unpacker, T4: Unpacker, T5: Unpacker, T6: Unpacker, T7: Unpacker> Unpacker for (T0, T1, T2, T3, T4, T5, T6, T7)

Source§

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

Source§

impl<T0: Unpacker, T1: Unpacker, T2: Unpacker, T3: Unpacker, T4: Unpacker, T5: Unpacker, T6: Unpacker, T7: Unpacker, T8: Unpacker> Unpacker for (T0, T1, T2, T3, T4, T5, T6, T7, T8)

Source§

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

Source§

impl<T0: Unpacker, T1: Unpacker, T2: Unpacker, T3: Unpacker, T4: Unpacker, T5: Unpacker, T6: Unpacker, T7: Unpacker, T8: Unpacker, T9: Unpacker> Unpacker for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)

Source§

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

Source§

impl<T0: Unpacker, T1: Unpacker, T2: Unpacker, T3: Unpacker, T4: Unpacker, T5: Unpacker, T6: Unpacker, T7: Unpacker, T8: Unpacker, T9: Unpacker, T10: Unpacker> Unpacker for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)

Source§

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

Source§

impl<T0: Unpacker, T1: Unpacker, T2: Unpacker, T3: Unpacker, T4: Unpacker, T5: Unpacker, T6: Unpacker, T7: Unpacker, T8: Unpacker, T9: Unpacker, T10: Unpacker, T11: Unpacker> Unpacker for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)

Source§

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

Source§

impl<T: Unpacker + 'static> Unpacker for Vec<T>

Source§

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

Unpacks a Vec<T> from the compact format.

Source§

impl<T: Unpacker + Eq + Hash + 'static> Unpacker for HashSet<T>

Source§

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

Source§

impl<T: Unpacker + Ord + 'static> Unpacker for BTreeSet<T>

Source§

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

Source§

impl<T: Unpacker> Unpacker for Option<T>

Source§

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

Source§

impl<T: Unpacker> Unpacker for Box<T>

Source§

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

Source§

impl<T: Unpacker> Unpacker for Arc<T>

Source§

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

Source§

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

Source§

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

Implementors§