pub struct CompressedSegmentTree<M, X, Inner>where
M: Monoid,{
compress: Vec<X>,
segs: Vec<Inner>,
_marker: PhantomData<fn() -> M>,
}Fields§
§compress: Vec<X>§segs: Vec<Inner>§_marker: PhantomData<fn() -> M>Implementations§
Source§impl<M, T1> CompressedSegmentTree<M, T1, Tag<M>>
impl<M, T1> CompressedSegmentTree<M, T1, Tag<M>>
Source§impl<M, T1, T2> CompressedSegmentTree<M, T1, CompressedSegmentTree<M, T2, Tag<M>>>
impl<M, T1, T2> CompressedSegmentTree<M, T1, CompressedSegmentTree<M, T2, Tag<M>>>
Source§impl<M, T1, T2, T3> CompressedSegmentTree<M, T1, CompressedSegmentTree<M, T2, CompressedSegmentTree<M, T3, Tag<M>>>>
impl<M, T1, T2, T3> CompressedSegmentTree<M, T1, CompressedSegmentTree<M, T2, CompressedSegmentTree<M, T3, Tag<M>>>>
Source§impl<M, T1, T2, T3, T4> CompressedSegmentTree<M, T1, CompressedSegmentTree<M, T2, CompressedSegmentTree<M, T3, CompressedSegmentTree<M, T4, Tag<M>>>>>
impl<M, T1, T2, T3, T4> CompressedSegmentTree<M, T1, CompressedSegmentTree<M, T2, CompressedSegmentTree<M, T3, CompressedSegmentTree<M, T4, Tag<M>>>>>
pub fn new(points: &[(T1, (T2, (T3, (T4,))))]) -> Self
fn from_iter<'a, Iter>(points: Iter) -> Selfwhere
T1: 'a,
T2: 'a,
T3: 'a,
T4: 'a,
Iter: IntoIterator<Item = &'a (T1, (T2, (T3, (T4,))))> + Clone,
pub fn fold<Q1, Q2, Q3, Q4>(&self, range: &(Q1, (Q2, (Q3, (Q4,))))) -> M::T
pub fn update(&mut self, key: &(T1, (T2, (T3, (T4,)))), x: &M::T)
Trait Implementations§
Source§impl<M, X, Inner> Clone for CompressedSegmentTree<M, X, Inner>
impl<M, X, Inner> Clone for CompressedSegmentTree<M, X, Inner>
Source§impl<M, X, Inner> Debug for CompressedSegmentTree<M, X, Inner>
impl<M, X, Inner> Debug for CompressedSegmentTree<M, X, Inner>
Auto Trait Implementations§
impl<M, X, Inner> Freeze for CompressedSegmentTree<M, X, Inner>
impl<M, X, Inner> RefUnwindSafe for CompressedSegmentTree<M, X, Inner>where
X: RefUnwindSafe,
Inner: RefUnwindSafe,
impl<M, X, Inner> Send for CompressedSegmentTree<M, X, Inner>
impl<M, X, Inner> Sync for CompressedSegmentTree<M, X, Inner>
impl<M, X, Inner> Unpin for CompressedSegmentTree<M, X, Inner>
impl<M, X, Inner> UnwindSafe for CompressedSegmentTree<M, X, Inner>where
X: UnwindSafe,
Inner: UnwindSafe,
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