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}