Trait Implementations
sourceimpl<T> LazyNode for Min<T> where
T: Ord + Clone,
impl<T> LazyNode for Min<T> where
T: Ord + Clone,
Implementation for minimum range query, the update sets each item in the range to the given value.
sourcefn lazy_update(&mut self, _i: usize, _j: usize)
fn lazy_update(&mut self, _i: usize, _j: usize)
The following invariant must be met while implementing this method, if lazy_value is called immediately after this function then it must return None
. (See Option::take)
sourcefn update_lazy_value(&mut self, v: &<Self as Node>::Value)
fn update_lazy_value(&mut self, v: &<Self as Node>::Value)
The following invariant must be met while implementing this method, if lazy_value is called immediately after this function then it must return Some(&value)
.
sourcefn lazy_value(&self) -> Option<&<Self as Node>::Value>
fn lazy_value(&self) -> Option<&<Self as Node>::Value>
Must return a reference to the current lazy value only if it exists.
sourceimpl<T> Node for Min<T> where
T: Ord + Clone,
impl<T> Node for Min<T> where
T: Ord + Clone,
type Value = T
type Value = T
This type corresponds to the type of the information to create the node with Node::initialize.
sourcefn initialize(v: &Self::Value) -> Self
fn initialize(v: &Self::Value) -> Self
Function to create nodes from saved value, it is assumed that even if there’s more data saved in the node, value
should have enough data to recreate all of the data in the node.
sourcefn combine(a: &Self, b: &Self) -> Self
fn combine(a: &Self, b: &Self) -> Self
Function which will combine nodes a
and b
, where each corresponds to segments [i,j]
and [j+1,k]
respectively, into a node which corresponds to the segment [i,k]
. This function must be associative (taking * as a symbol for combine, we have that a*(b*c)==(a*b)*c is true), but need not be commutative (it’s not necessarily true that a*b==b*a).
impl<T: Eq> Eq for Min<T> where
T: Ord + Clone,
impl<T> StructuralEq for Min<T> where
T: Ord + Clone,
impl<T> StructuralPartialEq for Min<T> where
T: Ord + Clone,
Auto Trait Implementations
impl<T> RefUnwindSafe for Min<T> where
T: RefUnwindSafe,
impl<T> Send for Min<T> where
T: Send,
impl<T> Sync for Min<T> where
T: Sync,
impl<T> Unpin for Min<T> where
T: Unpin,
impl<T> UnwindSafe for Min<T> where
T: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more