BorrowDecode

Trait BorrowDecode 

Source
pub trait BorrowDecode<'de, Format = ()>: Sized {
    // Required method
    fn borrow_decode(r: &mut BorrowReader<'de>) -> Result<Self, DecodeError>;
}
Expand description

Types which can be decoded from storekey format with borrowed ownership.

This trait is very similar to the Decode trait with the exception that this trait allows for zero-copy deserialization. Allowing the deserialization of the escaped variants of str EscapedStr and [u8] EscapedSlice as well as deserializing Cow<str> and Cow<[u8]> borrowing directly from the reader if possible.

Required Methods§

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<'de, F> BorrowDecode<'de, F> for Cow<'de, str>

Source§

impl<'de, F> BorrowDecode<'de, F> for Cow<'de, [u8]>

Source§

impl<'de, F> BorrowDecode<'de, F> for bool

Source§

impl<'de, F> BorrowDecode<'de, F> for char

Source§

impl<'de, F> BorrowDecode<'de, F> for f32

Source§

impl<'de, F> BorrowDecode<'de, F> for f64

Source§

impl<'de, F> BorrowDecode<'de, F> for i8

Source§

impl<'de, F> BorrowDecode<'de, F> for i16

Source§

impl<'de, F> BorrowDecode<'de, F> for i32

Source§

impl<'de, F> BorrowDecode<'de, F> for i64

Source§

impl<'de, F> BorrowDecode<'de, F> for i128

Source§

impl<'de, F> BorrowDecode<'de, F> for u8

Source§

impl<'de, F> BorrowDecode<'de, F> for u16

Source§

impl<'de, F> BorrowDecode<'de, F> for u32

Source§

impl<'de, F> BorrowDecode<'de, F> for u64

Source§

impl<'de, F> BorrowDecode<'de, F> for u128

Source§

impl<'de, F> BorrowDecode<'de, F> for String

Source§

impl<'de, F> BorrowDecode<'de, F> for Duration

Source§

impl<'de, F, D> BorrowDecode<'de, F> for Cow<'de, D>
where D: ToOwned<Owned = D> + BorrowDecode<'de, F>,

Source§

impl<'de, F, D: BorrowDecode<'de, F>> BorrowDecode<'de, F> for Bound<D>

Source§

impl<'de, F, D: BorrowDecode<'de, F>> BorrowDecode<'de, F> for Option<D>

Source§

impl<'de, F, D: BorrowDecode<'de, F>> BorrowDecode<'de, F> for Box<D>

Source§

impl<'de, F, D: BorrowDecode<'de, F>> BorrowDecode<'de, F> for Vec<D>

Source§

impl<'de, F, K: BorrowDecode<'de, F> + Ord, V: BorrowDecode<'de, F>> BorrowDecode<'de, F> for BTreeMap<K, V>

Source§

impl<'de, F, K: BorrowDecode<'de, F> + Hash + Eq, V: BorrowDecode<'de, F>, S: BuildHasher + Default> BorrowDecode<'de, F> for HashMap<K, V, S>

Source§

impl<'de, F, O: BorrowDecode<'de, F>, E: BorrowDecode<'de, F>> BorrowDecode<'de, F> for Result<O, E>

Source§

impl<'de, F, T: BorrowDecode<'de, F> + Sized, const SIZE: usize> BorrowDecode<'de, F> for [T; SIZE]

Source§

impl<'de, Format> BorrowDecode<'de, Format> for ()

Source§

impl<'de, Format, A: BorrowDecode<'de, Format>> BorrowDecode<'de, Format> for (A,)

Source§

impl<'de, Format, A: BorrowDecode<'de, Format>, B: BorrowDecode<'de, Format>> BorrowDecode<'de, Format> for (A, B)

Source§

impl<'de, Format, A: BorrowDecode<'de, Format>, B: BorrowDecode<'de, Format>, C: BorrowDecode<'de, Format>> BorrowDecode<'de, Format> for (A, B, C)

Source§

impl<'de, Format, A: BorrowDecode<'de, Format>, B: BorrowDecode<'de, Format>, C: BorrowDecode<'de, Format>, D: BorrowDecode<'de, Format>> BorrowDecode<'de, Format> for (A, B, C, D)

Source§

impl<'de, Format, A: BorrowDecode<'de, Format>, B: BorrowDecode<'de, Format>, C: BorrowDecode<'de, Format>, D: BorrowDecode<'de, Format>, E: BorrowDecode<'de, Format>> BorrowDecode<'de, Format> for (A, B, C, D, E)

Source§

impl<'de, Format, A: BorrowDecode<'de, Format>, B: BorrowDecode<'de, Format>, C: BorrowDecode<'de, Format>, D: BorrowDecode<'de, Format>, E: BorrowDecode<'de, Format>, F: BorrowDecode<'de, Format>> BorrowDecode<'de, Format> for (A, B, C, D, E, F)

Implementors§

Source§

impl<'de, F> BorrowDecode<'de, F> for &'de EscapedSlice

Source§

impl<'de, F> BorrowDecode<'de, F> for &'de EscapedStr