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