pub trait KeyValueStore {
// Required methods
fn put(
&self,
key: &[u8],
column: Column,
value: Value
) -> DatabaseResult<Option<Value>>;
fn write(
&self,
key: &[u8],
column: Column,
buf: &[u8]
) -> DatabaseResult<usize>;
fn replace(
&self,
key: &[u8],
column: Column,
buf: &[u8]
) -> DatabaseResult<(usize, Option<Value>)>;
fn take(&self, key: &[u8], column: Column) -> DatabaseResult<Option<Value>>;
fn delete(
&self,
key: &[u8],
column: Column
) -> DatabaseResult<Option<Value>>;
fn exists(&self, key: &[u8], column: Column) -> DatabaseResult<bool>;
fn size_of_value(
&self,
key: &[u8],
column: Column
) -> DatabaseResult<Option<usize>>;
fn get(&self, key: &[u8], column: Column) -> DatabaseResult<Option<Value>>;
fn read(
&self,
key: &[u8],
column: Column,
buf: &mut [u8]
) -> DatabaseResult<Option<usize>>;
fn read_alloc(
&self,
key: &[u8],
column: Column
) -> DatabaseResult<Option<Value>>;
fn iter_all(
&self,
column: Column,
prefix: Option<&[u8]>,
start: Option<&[u8]>,
direction: IterDirection
) -> BoxedIter<'_, KVItem>;
}