Trait sanakirja_core::btree::BTreePage [−][src]
Associated Types
Loading content...Required methods
fn is_empty(c: &Self::Cursor) -> bool
[src]
Whether this cursor is at the end of the page.
fn is_init(c: &Self::Cursor) -> bool
[src]
Whether this cursor is strictly before the first element.
fn cursor_before(p: &CowPage) -> Self::Cursor
[src]
Returns a cursor set before the first element of the page (i.e. set to -1).
fn cursor_after(p: &CowPage) -> Self::Cursor
[src]
Returns a cursor set after the last element of the page (i.e. to element n)
fn move_next(c: &mut Self::Cursor) -> bool
[src]
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).
fn move_prev(c: &mut Self::Cursor) -> bool
[src]
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).
fn current<'a, T: LoadPage>(
txn: &T,
p: Page<'a>,
c: &Self::Cursor
) -> Option<(&'a K, &'a V, u64)>
[src]
txn: &T,
p: Page<'a>,
c: &Self::Cursor
) -> Option<(&'a K, &'a V, u64)>
Returns the current element, if the cursor is pointing at one.
fn left_child(p: Page<'_>, c: &Self::Cursor) -> u64
[src]
Returns the left child of the entry pointed to by the cursor.
fn right_child(p: Page<'_>, c: &Self::Cursor) -> u64
[src]
Returns the right child of the entry pointed to by the cursor.
fn set_cursor<'a, T: LoadPage>(
txn: &'a T,
page: Page<'_>,
c: &mut Self::Cursor,
k0: &K,
v0: Option<&V>
) -> Result<(&'a K, &'a V, u64), usize>
[src]
txn: &'a T,
page: Page<'_>,
c: &mut Self::Cursor,
k0: &K,
v0: Option<&V>
) -> Result<(&'a K, &'a V, u64), usize>
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()
.
fn split_at(c: &Self::Cursor) -> (Self::Cursor, Self::Cursor)
[src]
Provided methods
fn cursor_first(p: &CowPage) -> Self::Cursor
[src]
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
[src]
Returns a cursor set to the last element of the page. If the
cursor is empty, this is the same as cursor_before
.
fn next<'b, T: LoadPage>(
txn: &T,
p: Page<'b>,
c: &mut Self::Cursor
) -> Option<(&'b K, &'b V, u64)>
[src]
txn: &T,
p: Page<'b>,
c: &mut Self::Cursor
) -> Option<(&'b K, &'b V, u64)>
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.
fn prev<'b, T: LoadPage>(
txn: &T,
p: Page<'b>,
c: &mut Self::Cursor
) -> Option<(&'b K, &'b V, u64)>
[src]
txn: &T,
p: Page<'b>,
c: &mut Self::Cursor
) -> Option<(&'b K, &'b V, u64)>
Move the cursor to the previous element, and return that
element. In that sense, this is not the symmetric of next
.
Implementors
impl<K: Storable, V: Storable> BTreePage<K, V> for sanakirja_core::btree::page::Page<K, V>
[src]
type Cursor = PageCursor
fn is_empty(c: &Self::Cursor) -> bool
[src]
fn is_init(c: &Self::Cursor) -> bool
[src]
fn cursor_before(p: &CowPage) -> Self::Cursor
[src]
fn cursor_after(p: &CowPage) -> Self::Cursor
[src]
fn split_at(c: &Self::Cursor) -> (Self::Cursor, Self::Cursor)
[src]
fn move_next(c: &mut Self::Cursor) -> bool
[src]
fn move_prev(c: &mut Self::Cursor) -> bool
[src]
fn current<'a, T: LoadPage>(
_txn: &T,
page: Page<'a>,
c: &Self::Cursor
) -> Option<(&'a K, &'a V, u64)>
[src]
_txn: &T,
page: Page<'a>,
c: &Self::Cursor
) -> Option<(&'a K, &'a V, u64)>
fn left_child(page: Page<'_>, c: &Self::Cursor) -> u64
[src]
fn right_child(page: Page<'_>, c: &Self::Cursor) -> u64
[src]
fn set_cursor<'a, T: LoadPage>(
txn: &'a T,
page: Page<'_>,
c: &mut PageCursor,
k0: &K,
v0: Option<&V>
) -> Result<(&'a K, &'a V, u64), usize>
[src]
txn: &'a T,
page: Page<'_>,
c: &mut PageCursor,
k0: &K,
v0: Option<&V>
) -> Result<(&'a K, &'a V, u64), usize>
impl<K: UnsizedStorable + ?Sized, V: UnsizedStorable + ?Sized> BTreePage<K, V> for sanakirja_core::btree::page_unsized::Page<K, V>
[src]
fn is_empty(c: &Self::Cursor) -> bool
[src]
fn is_init(c: &Self::Cursor) -> bool
[src]
type Cursor = PageCursor
fn cursor_before(p: &CowPage) -> Self::Cursor
[src]
fn cursor_after(p: &CowPage) -> Self::Cursor
[src]
fn split_at(c: &Self::Cursor) -> (Self::Cursor, Self::Cursor)
[src]
fn move_next(c: &mut Self::Cursor) -> bool
[src]
fn move_prev(c: &mut Self::Cursor) -> bool
[src]
fn current<'a, T: LoadPage>(
txn: &T,
page: Page<'a>,
c: &Self::Cursor
) -> Option<(&'a K, &'a V, u64)>
[src]
txn: &T,
page: Page<'a>,
c: &Self::Cursor
) -> Option<(&'a K, &'a V, u64)>
fn left_child(page: Page<'_>, c: &Self::Cursor) -> u64
[src]
fn right_child(page: Page<'_>, c: &Self::Cursor) -> u64
[src]
fn set_cursor<'a, T: LoadPage>(
txn: &'a T,
page: Page<'_>,
c: &mut PageCursor,
k0: &K,
v0: Option<&V>
) -> Result<(&'a K, &'a V, u64), usize>
[src]
txn: &'a T,
page: Page<'_>,
c: &mut PageCursor,
k0: &K,
v0: Option<&V>
) -> Result<(&'a K, &'a V, u64), usize>