nekolib/traits/act.rs
1//! 区間作用に関するトレイトです。
2
3use super::action;
4use super::binop;
5
6use std::ops::RangeBounds;
7
8use action::MonoidAction;
9use binop::Magma;
10
11/// 区間作用を行う。
12pub trait Act<R: RangeBounds<usize>> {
13 /// `r` で指定される区間に作用を行う。
14 type Action: MonoidAction;
15 fn act(
16 &mut self,
17 r: R,
18 x: <<Self::Action as MonoidAction>::Operator as Magma>::Set,
19 );
20}