pub unsafe trait StorableRef<'a, T>where
    Self: Sized + Copy,
    T: ?Sized + Storable + 'a,{
    // Required method
    fn ref_to_bytes(self) -> T::BytesRef<'a>;

    // Provided method
    fn ref_bytes_len(self) -> usize { ... }
}
Expand description

Reference-like types which can be used to store a Storable type

Type parameter T is the Storable type and 'a is the lifetime used for the reference-like type.

For example, (&'a i32, &'a str) implements StorableRef<'a, (i32, String)> and may thus be passed to TxnRw::put instead of &'a (i32, String). This avoids unnecessary cloning when constructing the tuple.

Safety

Required Methods§

source

fn ref_to_bytes(self) -> T::BytesRef<'a>

Converts reference to byte slice

Provided Methods§

source

fn ref_bytes_len(self) -> usize

Length of byte representation

Implementations on Foreign Types§

source§

impl<'a, T1, T2, T3, T4, U1, U2, U3, U4> StorableRef<'a, (T1, T2, T3, T4)> for (U1, U2, U3, U4)where T1: Clone + BorrowStorable + 'a, T2: Clone + BorrowStorable + 'a, T3: Clone + BorrowStorable + 'a, T4: Clone + BorrowStorable + 'a, <T1 as BorrowStorable>::Stored: StorableConstBytesLen, <T2 as BorrowStorable>::Stored: StorableConstBytesLen, <T3 as BorrowStorable>::Stored: StorableConstBytesLen, U1: StorableRef<'a, <T1 as BorrowStorable>::Stored>, U2: StorableRef<'a, <T2 as BorrowStorable>::Stored>, U3: StorableRef<'a, <T3 as BorrowStorable>::Stored>, U4: StorableRef<'a, <T4 as BorrowStorable>::Stored>,

source§

impl<'a, T, U> StorableRef<'a, T> for &'a Uwhere T: ?Sized + Storable + 'a, U: ?Sized + Borrow<T>,

source§

impl<'a, T1, T2, U1, U2> StorableRef<'a, (T1, T2)> for (U1, U2)where T1: Clone + BorrowStorable + 'a, T2: Clone + BorrowStorable + 'a, <T1 as BorrowStorable>::Stored: StorableConstBytesLen, U1: StorableRef<'a, <T1 as BorrowStorable>::Stored>, U2: StorableRef<'a, <T2 as BorrowStorable>::Stored>,

source§

impl<'a, T1, T2, T3, U1, U2, U3> StorableRef<'a, (T1, T2, T3)> for (U1, U2, U3)where T1: Clone + BorrowStorable + 'a, T2: Clone + BorrowStorable + 'a, T3: Clone + BorrowStorable + 'a, <T1 as BorrowStorable>::Stored: StorableConstBytesLen, <T2 as BorrowStorable>::Stored: StorableConstBytesLen, U1: StorableRef<'a, <T1 as BorrowStorable>::Stored>, U2: StorableRef<'a, <T2 as BorrowStorable>::Stored>, U3: StorableRef<'a, <T3 as BorrowStorable>::Stored>,

Implementors§