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.

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, 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>,

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>,

Implementors§