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>where
<P as PtrTraits>::Target: RefUnwindSafe,
S: RefUnwindSafe,
O: RefUnwindSafe,
K: RefUnwindSafe,
P: RefUnwindSafe,
Tag: RefUnwindSafe,
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>where
<P as PtrTraits>::Target: RefUnwindSafe,
S: RefUnwindSafe,
O: RefUnwindSafe,
K: RefUnwindSafe,
P: RefUnwindSafe,
Tag: RefUnwindSafe,
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 more