Pack

Trait Pack 

Source
pub trait Pack {
    // Required methods
    fn encoded_len(&self) -> usize;
    fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>;
    fn decode(buf: &mut impl Buf) -> Result<Self, PackError>
       where Self: Sized;

    // Provided methods
    fn const_encoded_len() -> Option<usize> { ... }
    fn decode_into(&mut self, buf: &mut impl Buf) -> Result<(), PackError>
       where Self: Sized { ... }
}

Required Methods§

Source

fn encoded_len(&self) -> usize

Source

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>
where Self: Sized,

Provided Methods§

Source

fn const_encoded_len() -> Option<usize>

Source

fn decode_into(&mut self, buf: &mut impl Buf) -> Result<(), PackError>
where Self: Sized,

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 SocketAddr

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for bool

Source§

fn const_encoded_len() -> Option<usize>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for f32

Source§

fn const_encoded_len() -> Option<usize>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for f64

Source§

fn const_encoded_len() -> Option<usize>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for i8

Source§

fn const_encoded_len() -> Option<usize>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for i16

Source§

fn const_encoded_len() -> Option<usize>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for i32

Source§

fn const_encoded_len() -> Option<usize>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for i64

Source§

fn const_encoded_len() -> Option<usize>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for i128

Source§

fn const_encoded_len() -> Option<usize>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for u8

Source§

fn const_encoded_len() -> Option<usize>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for u16

Source§

fn const_encoded_len() -> Option<usize>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for u32

Source§

fn const_encoded_len() -> Option<usize>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for u64

Source§

fn const_encoded_len() -> Option<usize>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for u128

Source§

fn const_encoded_len() -> Option<usize>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for ()

Source§

fn const_encoded_len() -> Option<usize>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, _buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(_buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for usize

Source§

fn const_encoded_len() -> Option<usize>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for String

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for Arc<str>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for Duration

Source§

fn const_encoded_len() -> Option<usize>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for Error

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for ArcStr

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for Bytes

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for DateTime<Utc>

Source§

fn const_encoded_len() -> Option<usize>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for NaiveDate

Source§

fn const_encoded_len() -> Option<usize>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for NaiveDateTime

Source§

fn const_encoded_len() -> Option<usize>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for CompactString

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for Decimal

Source§

fn const_encoded_len() -> Option<usize>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for Arc<str>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for Uuid

Source§

fn const_encoded_len() -> Option<usize>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl Pack for Duration

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl<A> Pack for SmallVec<A>
where A: Array, <A as Array>::Item: Pack,

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl<K, R> Pack for HashSet<K, R>
where K: Pack + Hash + Eq, R: Default + BuildHasher,

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

fn decode_into(&mut self, buf: &mut impl Buf) -> Result<(), PackError>

Source§

impl<K, R> Pack for IndexSet<K, R>
where K: Pack + Hash + Eq, R: Default + BuildHasher,

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

fn decode_into(&mut self, buf: &mut impl Buf) -> Result<(), PackError>

Source§

impl<K, V, R> Pack for HashMap<K, V, R>
where K: Pack + Hash + Eq, V: Pack, R: Default + BuildHasher,

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

fn decode_into(&mut self, buf: &mut impl Buf) -> Result<(), PackError>

Source§

impl<K, V, R> Pack for IndexMap<K, V, R>
where K: Pack + Hash + Eq, V: Pack, R: Default + BuildHasher,

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

fn decode_into(&mut self, buf: &mut impl Buf) -> Result<(), PackError>

Source§

impl<K: Ord + Pack> Pack for BTreeSet<K>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

fn decode_into(&mut self, buf: &mut impl Buf) -> Result<(), PackError>

Source§

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

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

fn decode_into(&mut self, buf: &mut impl Buf) -> Result<(), PackError>

Source§

impl<T> Pack for BitFlags<T>
where T: BitFlag, <T as RawBitFlags>::Numeric: Pack,

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl<T: Pack + Any + Send + Sync + Poolable> Pack for Pooled<T>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

fn decode_into(&mut self, buf: &mut impl Buf) -> Result<(), PackError>

Source§

impl<T: Pack> Pack for Bound<T>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl<T: Pack> Pack for Option<T>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl<T: Pack> Pack for Box<T>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl<T: Pack> Pack for VecDeque<T>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

fn decode_into(&mut self, buf: &mut impl Buf) -> Result<(), PackError>

Source§

impl<T: Pack> Pack for Arc<[T]>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl<T: Pack> Pack for Arc<T>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl<T: Pack> Pack for Vec<T>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

fn decode_into(&mut self, buf: &mut impl Buf) -> Result<(), PackError>

Source§

impl<T: Pack> Pack for Arc<[T]>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl<T: Pack> Pack for Arc<T>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl<T: Pack, U: Pack> Pack for Result<T, U>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl<T: Pack, U: Pack> Pack for (T, U)

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl<T: Pack, U: Pack, V: Pack> Pack for (T, U, V)

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl<T: Pack, U: Pack, V: Pack, W: Pack> Pack for (T, U, V, W)

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

impl<T: Pack, const C: usize> Pack for ArrayVec<T, C>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

fn decode_into(&mut self, buf: &mut impl Buf) -> Result<(), PackError>

Source§

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

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

fn decode_into(&mut self, buf: &mut impl Buf) -> Result<(), PackError>

Source§

impl<const C: usize> Pack for ArrayString<C>

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Implementors§

Source§

impl Pack for Path

Source§

impl Pack for Z64

Source§

impl<const L: usize> Pack for BoundedBytes<L>