Struct ord_lmdb_rs::core::Database
source · [−]pub struct Database<'a> { /* private fields */ }
Expand description
Database
Implementations
sourceimpl<'a> Database<'a>
impl<'a> Database<'a>
sourcepub fn get<V: FromMdbValue + 'a>(&'a self, key: &dyn ToMdbValue) -> MdbResult<V>
pub fn get<V: FromMdbValue + 'a>(&'a self, key: &dyn ToMdbValue) -> MdbResult<V>
Retrieves a value by key. In case of DbAllowDups it will be the first value
sourcepub fn set(&self, key: &dyn ToMdbValue, value: &dyn ToMdbValue) -> MdbResult<()>
pub fn set(&self, key: &dyn ToMdbValue, value: &dyn ToMdbValue) -> MdbResult<()>
Sets value for key. In case of DbAllowDups it will add a new item
sourcepub fn append<K: ToMdbValue, V: ToMdbValue>(
&self,
key: &K,
value: &V
) -> MdbResult<()>
pub fn append<K: ToMdbValue, V: ToMdbValue>(
&self,
key: &K,
value: &V
) -> MdbResult<()>
Appends new key-value pair to database, starting a new page instead of splitting an existing one if necessary. Requires that key be >= all existing keys in the database (or will return KeyExists error).
sourcepub fn append_duplicate<K: ToMdbValue, V: ToMdbValue>(
&self,
key: &K,
value: &V
) -> MdbResult<()>
pub fn append_duplicate<K: ToMdbValue, V: ToMdbValue>(
&self,
key: &K,
value: &V
) -> MdbResult<()>
Appends new value for the given key (requires DbAllowDups), starting a new page instead of splitting an existing one if necessary. Requires that value be >= all existing values for the given key (or will return KeyExists error).
sourcepub fn insert(
&self,
key: &dyn ToMdbValue,
value: &dyn ToMdbValue
) -> MdbResult<()>
pub fn insert(
&self,
key: &dyn ToMdbValue,
value: &dyn ToMdbValue
) -> MdbResult<()>
Set value for key. Fails if key already exists, even when duplicates are allowed.
sourcepub fn del(&self, key: &dyn ToMdbValue) -> MdbResult<()>
pub fn del(&self, key: &dyn ToMdbValue) -> MdbResult<()>
Deletes value for key.
sourcepub fn del_item(
&self,
key: &dyn ToMdbValue,
data: &dyn ToMdbValue
) -> MdbResult<()>
pub fn del_item(
&self,
key: &dyn ToMdbValue,
data: &dyn ToMdbValue
) -> MdbResult<()>
Should be used only with DbAllowDups. Deletes corresponding (key, value)
sourcepub fn new_cursor(&'a self) -> MdbResult<Cursor<'a>>
pub fn new_cursor(&'a self) -> MdbResult<Cursor<'a>>
Returns a new cursor
sourcepub fn iter(&'a self) -> MdbResult<CursorIterator<'a, CursorIter>>
pub fn iter(&'a self) -> MdbResult<CursorIterator<'a, CursorIter>>
Returns an iterator for all values in database
sourcepub fn keyrange_from<'c, K: ToMdbValue + 'c>(
&'c self,
start_key: &'c K
) -> MdbResult<CursorIterator<'c, CursorFromKeyIter<'_>>>
pub fn keyrange_from<'c, K: ToMdbValue + 'c>(
&'c self,
start_key: &'c K
) -> MdbResult<CursorIterator<'c, CursorFromKeyIter<'_>>>
Returns an iterator through keys starting with start_key (>=), start_key is included
sourcepub fn keyrange_to<'c, K: ToMdbValue + 'c>(
&'c self,
end_key: &'c K
) -> MdbResult<CursorIterator<'c, CursorToKeyIter<'_>>>
pub fn keyrange_to<'c, K: ToMdbValue + 'c>(
&'c self,
end_key: &'c K
) -> MdbResult<CursorIterator<'c, CursorToKeyIter<'_>>>
Returns an iterator through keys less than end_key, end_key is not included
sourcepub fn keyrange_from_to<'c, K: ToMdbValue + 'c>(
&'c self,
start_key: &'c K,
end_key: &'c K
) -> MdbResult<CursorIterator<'c, CursorKeyRangeIter<'_>>>
pub fn keyrange_from_to<'c, K: ToMdbValue + 'c>(
&'c self,
start_key: &'c K,
end_key: &'c K
) -> MdbResult<CursorIterator<'c, CursorKeyRangeIter<'_>>>
Returns an iterator through keys start_key <= x < end_key
. This is, start_key is
included in the iteration, while end_key is kept excluded.
sourcepub fn keyrange<'c, K: ToMdbValue + 'c>(
&'c self,
start_key: &'c K,
end_key: &'c K
) -> MdbResult<CursorIterator<'c, CursorKeyRangeIter<'_>>>
pub fn keyrange<'c, K: ToMdbValue + 'c>(
&'c self,
start_key: &'c K,
end_key: &'c K
) -> MdbResult<CursorIterator<'c, CursorKeyRangeIter<'_>>>
Returns an iterator for values between start_key and end_key (included). Currently it works only for unique keys (i.e. it will skip multiple items when DB created with ffi::MDB_DUPSORT). Iterator is valid while cursor is valid
sourcepub fn item_iter<'c, 'db: 'c, K: ToMdbValue>(
&'db self,
key: &'c K
) -> MdbResult<CursorIterator<'c, CursorItemIter<'c>>>
pub fn item_iter<'c, 'db: 'c, K: ToMdbValue>(
&'db self,
key: &'c K
) -> MdbResult<CursorIterator<'c, CursorItemIter<'c>>>
Returns an iterator for all items (i.e. values with same key)
sourcepub fn set_compare(
&self,
cmp_fn: extern "C" fn(_: *const MDB_val, _: *const MDB_val) -> c_int
) -> MdbResult<()>
pub fn set_compare(
&self,
cmp_fn: extern "C" fn(_: *const MDB_val, _: *const MDB_val) -> c_int
) -> MdbResult<()>
Sets the key compare function for this database.
Warning: This function must be called before any data access functions are used, otherwise data corruption may occur. The same comparison function must be used by every program accessing the database, every time the database is used.
If not called, keys are compared lexically, with shorter keys collating before longer keys.
Setting lasts for the lifetime of the underlying db handle.
sourcepub fn set_dupsort(
&self,
cmp_fn: extern "C" fn(_: *const MDB_val, _: *const MDB_val) -> c_int
) -> MdbResult<()>
pub fn set_dupsort(
&self,
cmp_fn: extern "C" fn(_: *const MDB_val, _: *const MDB_val) -> c_int
) -> MdbResult<()>
Sets the value comparison function for values of the same key in this database.
Warning: This function must be called before any data access functions are used, otherwise data corruption may occur. The same dupsort function must be used by every program accessing the database, every time the database is used.
If not called, values are compared lexically, with shorter values collating before longer values.
Only used when DbAllowDups is true. Setting lasts for the lifetime of the underlying db handle.
Trait Implementations
Auto Trait Implementations
impl<'a> RefUnwindSafe for Database<'a>
impl<'a> !Send for Database<'a>
impl<'a> !Sync for Database<'a>
impl<'a> Unpin for Database<'a>
impl<'a> UnwindSafe for Database<'a>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more