Skip to main content

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}