Struct sanakirja::Db
[−]
[src]
pub struct Db<K: Representable, V: Representable>(_, _);
A database is a skip list of (page offset, key, value).
Trait Implementations
impl<K: Clone + Representable, V: Clone + Representable> Clone for Db<K, V>
[src]
fn clone(&self) -> Db<K, V>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more
impl<K: Copy + Representable, V: Copy + Representable> Copy for Db<K, V>
[src]
impl<K: Debug + Representable, V: Debug + Representable> Debug for Db<K, V>
[src]
impl<K: Representable, V: Representable> Representable for Db<K, V>
[src]
fn alignment() -> Alignment
Alignment of this type. Allowed values are 1, 2, 4 and 8.
fn onpage_size(&self) -> u16
How much space this value occupies on the page (not counting alignment padding).
unsafe fn skip(p: *mut u8) -> *mut u8
First pointer strictly after this value's pointer. The default implementation is basically p.offset(self.onpage_size() as isize)
, but their might be more efficient implementations in some cases. Read more
unsafe fn write_value(&self, p: *mut u8)
Write this value to a u8 pointer, guaranteed to be a multiple of self.alignment()
.
unsafe fn read_value(p: *const u8) -> Self
Read value from an onpage pointer, guaranteed to be a multiple of self.alignment()
.
unsafe fn cmp_value<T: LoadPage>(&self, _: &T, x: Db<K, V>) -> Ordering
Compare a value with an onpage value. The current transaction is sometimes helpful, for instance when the page only stores a pointer to another page. Read more
type PageOffsets = Once<u64>
An iterator over the offsets to pages contained in this value. Only values from this crate can generate non-empty iterators, but combined values (like tuples) must chain the iterators returned by method page_offsets
. Read more
fn page_offsets(&self) -> Self::PageOffsets
If this value is an offset to another page at offset offset
, return Some(offset)
. Return None
else. Read more
fn drop_value<T, R: Rng>(
&self,
txn: &mut MutTxn<T>,
rng: &mut R
) -> Result<(), Error>
&self,
txn: &mut MutTxn<T>,
rng: &mut R
) -> Result<(), Error>
How to free the pages used by this value. The default implementation doesn't do anything, which is fine for types stored directly on B tree pages. Read more