pub enum SearchResult<'a, C: TreapMapConfig, W: ConsoliableWeight> {
    Abort,
    LeftMost,
    Found {
        base_weight: W,
        node: &'a Node<C>,
    },
    RightMost(W),
}
Expand description

Represents the possible outcomes of the accumulate_weight_search.

This enum encapsulates the results that can be returned by accumulate_weight_search, indicating the outcome of the search within a treap map.

Variants§

§

Abort

Indicates that the search was aborted. This variant is used when no feasible result is found and the search position is neither at the extreme left nor the extreme right of the treap.

§

LeftMost

Indicates that the search reached the leftmost edge of the entire treap without finding a feasible result.

§

Found

Fields

§base_weight: W
§node: &'a Node<C>

Represents a successful search, indicating a feasible result has been found. Contains base_weight, which is the total weight from the leftmost edge up to but not including the current node, and a reference to the node itself.

§

RightMost(W)

Indicates that the search reached the rightmost edge of the entire treap without finding a feasible result. Also returns the total weight of the entire tree (RightMost(W)).

Implementations§

source§

impl<'a, C: TreapMapConfig, W: ConsoliableWeight> SearchResult<'a, C, W>

source

pub fn maybe_value(&self) -> Option<&'a C::Value>

Trait Implementations§

source§

impl<'a, C: TreapMapConfig, W> Debug for SearchResult<'a, C, W>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'a, C: TreapMapConfig, W: ConsoliableWeight> PartialEq for SearchResult<'a, C, W>
where C::Weight: PartialEq, Node<C>: PartialEq,

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

§

impl<'a, C, W> RefUnwindSafe for SearchResult<'a, C, W>

§

impl<'a, C, W> Send for SearchResult<'a, C, W>

§

impl<'a, C, W> Sync for SearchResult<'a, C, W>

§

impl<'a, C, W> Unpin for SearchResult<'a, C, W>
where W: Unpin,

§

impl<'a, C, W> UnwindSafe for SearchResult<'a, C, W>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V