pub trait Store<K, V> {
    type Error: From<Error>;
    type Handle;

    // Required method
    fn handle(&self) -> Self::Handle;

    // Provided methods
    fn get<T>(&self, txn: &T, key: &K) -> Result<Option<V>, Self::Error>
       where T: Readable<Handle = Self::Handle>,
             K: ToBytes,
             V: FromBytes,
             Self::Error: From<T::Error> { ... }
    fn put<T>(&self, txn: &mut T, key: &K, value: &V) -> Result<(), Self::Error>
       where T: Writable<Handle = Self::Handle>,
             K: ToBytes,
             V: ToBytes,
             Self::Error: From<T::Error> { ... }
    fn get_raw<T>(&self, txn: &T, key: &K) -> Result<Option<Bytes>, Self::Error>
       where T: Readable<Handle = Self::Handle>,
             K: AsRef<[u8]>,
             Self::Error: From<T::Error> { ... }
}
Expand description

Store is responsible for abstracting get and put operations over the underlying store specified by its associated Handle type.

Required Associated Types§

source

type Error: From<Error>

Errors possible from this store.

source

type Handle

Underlying store type.

Required Methods§

source

fn handle(&self) -> Self::Handle

handle returns the underlying store.

Provided Methods§

source

fn get<T>(&self, txn: &T, key: &K) -> Result<Option<V>, Self::Error>where T: Readable<Handle = Self::Handle>, K: ToBytes, V: FromBytes, Self::Error: From<T::Error>,

Returns an optional value (may exist or not) as read through a transaction, or an error of the associated Self::Error variety.

source

fn put<T>(&self, txn: &mut T, key: &K, value: &V) -> Result<(), Self::Error>where T: Writable<Handle = Self::Handle>, K: ToBytes, V: ToBytes, Self::Error: From<T::Error>,

Puts a value into the store at key within a transaction, potentially returning an error of type Self::Error if that fails.

source

fn get_raw<T>(&self, txn: &T, key: &K) -> Result<Option<Bytes>, Self::Error>where T: Readable<Handle = Self::Handle>, K: AsRef<[u8]>, Self::Error: From<T::Error>,

Returns an optional value (may exist or not) as read through a transaction, or an error of the associated Self::Error variety.

Implementors§