pub struct Cursor<'a, K, P, Tag = DefaultObjectTag, S = NonTrackingSize, O = DefaultWavlTreeObserver<<P as PtrTraits>::Target>>where
P: PtrTraits,
P::Target: WavlTreeContainable<P::Target, Tag> + WavlTreeKeyable<K>,
K: Ord,
S: SizeTracker,
O: WavlTreeObserver<Target = P::Target>,{ /* private fields */ }Expand description
A read-only cursor positioned in a WavlTree.
Implementations§
Source§impl<'a, K, P, Tag, S, O> Cursor<'a, K, P, Tag, S, O>where
P: PtrTraits,
P::Target: WavlTreeContainable<P::Target, Tag> + WavlTreeKeyable<K>,
K: Ord,
S: SizeTracker,
O: WavlTreeObserver<Target = P::Target>,
impl<'a, K, P, Tag, S, O> Cursor<'a, K, P, Tag, S, O>where
P: PtrTraits,
P::Target: WavlTreeContainable<P::Target, Tag> + WavlTreeKeyable<K>,
K: Ord,
S: SizeTracker,
O: WavlTreeObserver<Target = P::Target>,
Sourcepub fn get(&self) -> Option<&'a P::Target>
pub fn get(&self) -> Option<&'a P::Target>
Returns a reference to the current element, or None if the cursor is at the sentinel.
Sourcepub fn is_valid(&self) -> bool
pub fn is_valid(&self) -> bool
Returns true if the cursor is positioned at a valid element (not the sentinel).
Sourcepub fn left(&self) -> Self
pub fn left(&self) -> Self
Returns a cursor positioned at the left child of the current element. If the current element is the sentinel, returns a cursor at the sentinel.
Sourcepub fn right(&self) -> Self
pub fn right(&self) -> Self
Returns a cursor positioned at the right child of the current element.
Sourcepub fn as_raw_ptr(&self) -> *mut P::Target
pub fn as_raw_ptr(&self) -> *mut P::Target
Returns the raw pointer to the current element. This may be a sentinel pointer if the cursor is at the sentinel.
Trait Implementations§
Source§impl<'a, K, P, Tag, S, O> Clone for Cursor<'a, K, P, Tag, S, O>where
P: PtrTraits,
P::Target: WavlTreeContainable<P::Target, Tag> + WavlTreeKeyable<K>,
K: Ord,
S: SizeTracker,
O: WavlTreeObserver<Target = P::Target>,
impl<'a, K, P, Tag, S, O> Clone for Cursor<'a, K, P, Tag, S, O>where
P: PtrTraits,
P::Target: WavlTreeContainable<P::Target, Tag> + WavlTreeKeyable<K>,
K: Ord,
S: SizeTracker,
O: WavlTreeObserver<Target = P::Target>,
Source§impl<'a, K, P, Tag, S, O> Debug for Cursor<'a, K, P, Tag, S, O>where
P: PtrTraits,
P::Target: WavlTreeContainable<P::Target, Tag> + WavlTreeKeyable<K>,
K: Ord,
S: SizeTracker,
O: WavlTreeObserver<Target = P::Target>,
impl<'a, K, P, Tag, S, O> Debug for Cursor<'a, K, P, Tag, S, O>where
P: PtrTraits,
P::Target: WavlTreeContainable<P::Target, Tag> + WavlTreeKeyable<K>,
K: Ord,
S: SizeTracker,
O: WavlTreeObserver<Target = P::Target>,
Source§impl<'a, K, P, Tag, S, O> PartialEq for Cursor<'a, K, P, Tag, S, O>where
P: PtrTraits,
P::Target: WavlTreeContainable<P::Target, Tag> + WavlTreeKeyable<K>,
K: Ord,
S: SizeTracker,
O: WavlTreeObserver<Target = P::Target>,
impl<'a, K, P, Tag, S, O> PartialEq for Cursor<'a, K, P, Tag, S, O>where
P: PtrTraits,
P::Target: WavlTreeContainable<P::Target, Tag> + WavlTreeKeyable<K>,
K: Ord,
S: SizeTracker,
O: WavlTreeObserver<Target = P::Target>,
impl<'a, K, P, Tag, S, O> Copy for Cursor<'a, K, P, Tag, S, O>where
P: PtrTraits,
P::Target: WavlTreeContainable<P::Target, Tag> + WavlTreeKeyable<K>,
K: Ord,
S: SizeTracker,
O: WavlTreeObserver<Target = P::Target>,
Auto Trait Implementations§
impl<'a, K, P, Tag, S, O> Freeze for Cursor<'a, K, P, Tag, S, O>
impl<'a, K, P, Tag, S, O> RefUnwindSafe for Cursor<'a, K, P, Tag, S, O>
impl<'a, K, P, Tag = DefaultObjectTag, S = NonTrackingSize, O = DefaultWavlTreeObserver<<P as PtrTraits>::Target>> !Send for Cursor<'a, K, P, Tag, S, O>
impl<'a, K, P, Tag = DefaultObjectTag, S = NonTrackingSize, O = DefaultWavlTreeObserver<<P as PtrTraits>::Target>> !Sync for Cursor<'a, K, P, Tag, S, O>
impl<'a, K, P, Tag, S, O> Unpin for Cursor<'a, K, P, Tag, S, O>
impl<'a, K, P, Tag, S, O> UnsafeUnpin for Cursor<'a, K, P, Tag, S, O>
impl<'a, K, P, Tag, S, O> UnwindSafe for Cursor<'a, K, P, Tag, S, O>
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<T>,
Source§impl<T> PinInit<T> for T
impl<T> PinInit<T> for T
Source§unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), Infallible>
unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), Infallible>
Initializes
slot. Read moreSource§fn pin_chain<F>(self, f: F) -> ChainPinInit<Self, F, T, E>where
F: FnOnce(Pin<&mut T>) -> Result<(), E>,
fn pin_chain<F>(self, f: F) -> ChainPinInit<Self, F, T, E>where
F: FnOnce(Pin<&mut T>) -> Result<(), E>,
First initializes the value using
self then calls the function f with the initialized
value. Read more