pub struct Cursor<'a, K, V>where
K: 'a,
V: 'a,{ /* private fields */ }
btree_cursors
)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.
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
)
pub fn move_next(&mut self)
btree_cursors
)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
)
pub fn move_prev(&mut self)
btree_cursors
)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
)
pub fn key(&self) -> Option<&'a K>
btree_cursors
)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
)
pub fn value(&self) -> Option<&'a V>
btree_cursors
)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
)
pub fn key_value(&self) -> Option<(&'a K, &'a V)>
btree_cursors
)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
)
pub fn peek_next(&self) -> Option<(&'a K, &'a V)>
btree_cursors
)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
)
pub fn peek_prev(&self) -> Option<(&'a K, &'a V)>
btree_cursors
)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
.
Trait Implementations§
Auto Trait Implementations§
impl<'a, K, V> RefUnwindSafe for Cursor<'a, K, V>where
K: RefUnwindSafe,
V: RefUnwindSafe,
impl<'a, K, V> Send for Cursor<'a, K, V>
impl<'a, K, V> Sync for Cursor<'a, K, V>
impl<'a, K, V> Unpin for Cursor<'a, K, V>
impl<'a, K, V> UnwindSafe for Cursor<'a, K, V>where
K: RefUnwindSafe,
V: RefUnwindSafe,
Blanket Implementations§
source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.