pub struct MonoidActElement<M>where
M: MonoidAct,{
pub key: M::Key,
pub act: M::Act,
}Fields§
§key: M::Key§act: M::ActImplementations§
Source§impl<M> MonoidActElement<M>where
M: MonoidAct,
impl<M> MonoidActElement<M>where
M: MonoidAct,
Sourcepub fn from_key(key: M::Key) -> Self
pub fn from_key(key: M::Key) -> Self
Examples found in repository?
crates/competitive/src/data_structure/treap.rs (line 375)
371 pub fn insert(&mut self, key: M::Key, value: L::Key) -> BstNodeId<TreapSpec<M, L>> {
372 let (left, right) = TreapSpec::split(self.root.take(), SeekByKey::new(&key), false);
373 let data = TreapData {
374 priority: self.rng.rand64(),
375 key: MonoidActElement::from_key(key),
376 value: LazyMapElement::from_key(value),
377 };
378 let node = BstRoot::from_data(data, self.allocator.deref_mut());
379 let node_id = self.node_id_manager.register(&node);
380 self.root = TreapSpec::merge(TreapSpec::merge(left, Some(node)), right);
381 node_id
382 }Sourcepub fn update_act<Spec>(node: BstDataMutRef<'_, Spec>, act: &M::Act)
pub fn update_act<Spec>(node: BstDataMutRef<'_, Spec>, act: &M::Act)
Examples found in repository?
More examples
crates/competitive/src/data_structure/binary_search_tree/data.rs (line 100)
94 pub fn top_down<Spec>(mut node: BstDataMutRef<'_, Spec>)
95 where
96 Spec: BstSpec<Data: BstDataAccess<marker::MonoidAct, Value = Self>>,
97 {
98 let act = replace(&mut node.data_mut().bst_data_mut().act, M::unit());
99 if let Ok(left) = node.reborrow_datamut().left().descend() {
100 Self::update_act(left, &act);
101 }
102 if let Ok(right) = node.reborrow_datamut().right().descend() {
103 Self::update_act(right, &act);
104 }
105 }Sourcepub fn top_down<Spec>(node: BstDataMutRef<'_, Spec>)
pub fn top_down<Spec>(node: BstDataMutRef<'_, Spec>)
Trait Implementations§
Auto Trait Implementations§
impl<M> Freeze for MonoidActElement<M>
impl<M> RefUnwindSafe for MonoidActElement<M>
impl<M> Send for MonoidActElement<M>
impl<M> Sync for MonoidActElement<M>
impl<M> Unpin for MonoidActElement<M>
impl<M> UnwindSafe for MonoidActElement<M>
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