Skip to main content

nekolib/traits/
fold.rs

1//! 区間和に関するトレイトです。
2
3use super::binop;
4
5use std::ops::RangeBounds;
6
7use binop::{Magma, Monoid};
8
9/// 区間和を求める。
10pub trait Fold<R: RangeBounds<usize>> {
11    type Output: Monoid;
12    /// `r` で指定される区間の和を返す。
13    fn fold(&self, r: R) -> <Self::Output as Magma>::Set;
14}