Trait sanakirja::btree::BTreePage [−][src]
pub trait BTreePage<K, V> where
K: ?Sized,
V: ?Sized, { type Cursor: Clone + Copy + Debug;}Show 15 methods
fn is_empty(c: &Self::Cursor) -> bool; fn is_init(c: &Self::Cursor) -> bool; fn cursor_before(p: &CowPage) -> Self::Cursor; fn cursor_after(p: &CowPage) -> Self::Cursor; fn move_next(c: &mut Self::Cursor) -> bool; fn move_prev(c: &mut Self::Cursor) -> bool; fn current<T>(
txn: &T,
p: Page<'a>,
c: &Self::Cursor
) -> Option<(&'a K, &'a V, u64)>
where
T: LoadPage; fn left_child(p: Page<'_>, c: &Self::Cursor) -> u64; fn right_child(p: Page<'_>, c: &Self::Cursor) -> u64; fn set_cursor<T>(
txn: &'a T,
page: Page<'_>,
c: &mut Self::Cursor,
k0: &K,
v0: Option<&V>
) -> Result<(&'a K, &'a V, u64), usize>
where
T: LoadPage; fn split_at(c: &Self::Cursor) -> (Self::Cursor, Self::Cursor); fn cursor_first(p: &CowPage) -> Self::Cursor { ... } fn cursor_last(p: &CowPage) -> Self::Cursor { ... } fn next<T>(
txn: &T,
p: Page<'b>,
c: &mut Self::Cursor
) -> Option<(&'b K, &'b V, u64)>
where
T: LoadPage, { ... } fn prev<T>(
txn: &T,
p: Page<'b>,
c: &mut Self::Cursor
) -> Option<(&'b K, &'b V, u64)>
where
T: LoadPage, { ... }
Associated Types
Required methods
fn cursor_before(p: &CowPage) -> Self::Cursor
fn cursor_before(p: &CowPage) -> Self::Cursor
Returns a cursor set before the first element of the page (i.e. set to -1).
fn cursor_after(p: &CowPage) -> Self::Cursor
fn cursor_after(p: &CowPage) -> Self::Cursor
Returns a cursor set after the last element of the page (i.e. to element n)
Move the cursor to the next position. Returns whether the
cursor was actually moved (i.e. true
if and only if the
cursor isn’t already after the last element).
Move the cursor to the previous position. Returns whether the
cursor was actually moved (i.e. true
if and only if the
cursor isn’t strictly before the page).
Returns the current element, if the cursor is pointing at one.
fn left_child(p: Page<'_>, c: &Self::Cursor) -> u64
fn left_child(p: Page<'_>, c: &Self::Cursor) -> u64
Returns the left child of the entry pointed to by the cursor.
fn right_child(p: Page<'_>, c: &Self::Cursor) -> u64
fn right_child(p: Page<'_>, c: &Self::Cursor) -> u64
Returns the right child of the entry pointed to by the cursor.
Sets the cursor to the last element less than or equal to k0
if v0.is_none()
, and to (k0, v0)
if v0.is_some()
. If a
match is found (on k0
only if v0.is_none()
, on (k0, v0)
else), return the match along with the right child.
Else (in the Err
case of the Result
), return the position
at which (k0, v0)
can be inserted.
Provided methods
fn cursor_first(p: &CowPage) -> Self::Cursor
fn cursor_first(p: &CowPage) -> Self::Cursor
Returns a cursor set to the first element of the page (i.e. 0). If the page is empty, the returned cursor might be empty.
fn cursor_last(p: &CowPage) -> Self::Cursor
fn cursor_last(p: &CowPage) -> Self::Cursor
Returns a cursor set to the last element of the page. If the
cursor is empty, this is the same as cursor_before
.
Return the element currently pointed to by the cursor (if the cursor is not before or after the elements of the page), and move the cursor to the next element.