pub struct Cursor<'a, K: 'a, V: 'a> {
current: Option<Handle<NodeRef<Immut<'a>, K, V, LeafOrInternal>, KV>>,
root: Option<&'a NodeRef<Owned, K, V, LeafOrInternal>>,
}
btree_cursors
#107540)Expand description
A cursor over a BTreeMap
.
A Cursor
is like an iterator, except that it can freely seek back-and-forth.
Cursors always point to an element in the tree, and index in a logically circular way.
To accommodate this, there is a “ghost” non-element that yields None
between the last and
first elements of the tree.
A Cursor
is created with the BTreeMap::lower_bound
and BTreeMap::upper_bound
methods.
Fields§
§current: Option<Handle<NodeRef<Immut<'a>, K, V, LeafOrInternal>, KV>>
btree_cursors
#107540)root: Option<&'a NodeRef<Owned, K, V, LeafOrInternal>>
btree_cursors
#107540)Implementations§
source§impl<'a, K, V> Cursor<'a, K, V>
impl<'a, K, V> Cursor<'a, K, V>
sourcepub fn move_next(&mut self)
🔬This is a nightly-only experimental API. (btree_cursors
#107540)
pub fn move_next(&mut self)
btree_cursors
#107540)Moves the cursor to the next element of the BTreeMap
.
If the cursor is pointing to the “ghost” non-element then this will move it to
the first element of the BTreeMap
. If it is pointing to the last
element of the BTreeMap
then this will move it to the “ghost” non-element.
sourcepub fn move_prev(&mut self)
🔬This is a nightly-only experimental API. (btree_cursors
#107540)
pub fn move_prev(&mut self)
btree_cursors
#107540)Moves the cursor to the previous element of the BTreeMap
.
If the cursor is pointing to the “ghost” non-element then this will move it to
the last element of the BTreeMap
. If it is pointing to the first
element of the BTreeMap
then this will move it to the “ghost” non-element.
sourcepub fn key(&self) -> Option<&'a K>
🔬This is a nightly-only experimental API. (btree_cursors
#107540)
pub fn key(&self) -> Option<&'a K>
btree_cursors
#107540)Returns a reference to the key of the element that the cursor is currently pointing to.
This returns None
if the cursor is currently pointing to the
“ghost” non-element.
sourcepub fn value(&self) -> Option<&'a V>
🔬This is a nightly-only experimental API. (btree_cursors
#107540)
pub fn value(&self) -> Option<&'a V>
btree_cursors
#107540)Returns a reference to the value of the element that the cursor is currently pointing to.
This returns None
if the cursor is currently pointing to the
“ghost” non-element.
sourcepub fn key_value(&self) -> Option<(&'a K, &'a V)>
🔬This is a nightly-only experimental API. (btree_cursors
#107540)
pub fn key_value(&self) -> Option<(&'a K, &'a V)>
btree_cursors
#107540)Returns a reference to the key and value of the element that the cursor is currently pointing to.
This returns None
if the cursor is currently pointing to the
“ghost” non-element.
sourcepub fn peek_next(&self) -> Option<(&'a K, &'a V)>
🔬This is a nightly-only experimental API. (btree_cursors
#107540)
pub fn peek_next(&self) -> Option<(&'a K, &'a V)>
btree_cursors
#107540)Returns a reference to the next element.
If the cursor is pointing to the “ghost” non-element then this returns
the first element of the BTreeMap
. If it is pointing to the last
element of the BTreeMap
then this returns None
.
sourcepub fn peek_prev(&self) -> Option<(&'a K, &'a V)>
🔬This is a nightly-only experimental API. (btree_cursors
#107540)
pub fn peek_prev(&self) -> Option<(&'a K, &'a V)>
btree_cursors
#107540)Returns a reference to the previous element.
If the cursor is pointing to the “ghost” non-element then this returns
the last element of the BTreeMap
. If it is pointing to the first
element of the BTreeMap
then this returns None
.