Trait sanakirja::btree::BTreePage[][src]

pub trait BTreePage<K, V> where
    K: ?Sized,
    V: ?Sized
{ type Cursor: Clone + Copy + Debug; pub fn is_empty(c: &Self::Cursor) -> bool;
pub fn is_init(c: &Self::Cursor) -> bool;
pub fn cursor_before(p: &CowPage) -> Self::Cursor;
pub fn cursor_after(p: &CowPage) -> Self::Cursor;
pub fn move_next(c: &mut Self::Cursor) -> bool;
pub fn move_prev(c: &mut Self::Cursor) -> bool;
pub fn current<T>(
        txn: &T,
        p: Page<'a>,
        c: &Self::Cursor
    ) -> Option<(&'a K, &'a V, u64)>
    where
        T: LoadPage
;
pub fn left_child(p: Page<'_>, c: &Self::Cursor) -> u64;
pub fn right_child(p: Page<'_>, c: &Self::Cursor) -> u64;
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
;
pub fn split_at(c: &Self::Cursor) -> (Self::Cursor, Self::Cursor); pub fn cursor_first(p: &CowPage) -> Self::Cursor { ... }
pub fn cursor_last(p: &CowPage) -> Self::Cursor { ... }
pub fn next<T>(
        txn: &T,
        p: Page<'b>,
        c: &mut Self::Cursor
    ) -> Option<(&'b K, &'b V, u64)>
    where
        T: LoadPage
, { ... }
pub fn prev<T>(
        txn: &T,
        p: Page<'b>,
        c: &mut Self::Cursor
    ) -> Option<(&'b K, &'b V, u64)>
    where
        T: LoadPage
, { ... } }

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]

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]

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]

Loading content...

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]

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]

Move the cursor to the previous element, and return that element. In that sense, this is not the symmetric of next.

Loading content...

Implementors

impl<K, V> BTreePage<K, V> for sanakirja::btree::page::Page<K, V> where
    K: Storable,
    V: Storable
[src]

type Cursor = PageCursor

impl<K, V> BTreePage<K, V> for sanakirja::btree::page_unsized::Page<K, V> where
    K: UnsizedStorable + ?Sized,
    V: UnsizedStorable + ?Sized
[src]

type Cursor = PageCursor

Loading content...