pub trait FenwickTree {
type Value: FenwickTreeValue;
// Required methods
fn query(&self, idx: usize) -> Result<Self::Value, TreeError>;
fn update(
&mut self,
idx: usize,
value: Self::Value,
) -> Result<(), TreeError>;
// Provided method
fn range_query(
&self,
from: usize,
to: usize,
) -> Result<Self::Value, TreeError> { ... }
}
Expand description
Fenwick tree trait, API of that data structure
Required Associated Types§
type Value: FenwickTreeValue
Required Methods§
Provided Methods§
Sourcefn range_query(&self, from: usize, to: usize) -> Result<Self::Value, TreeError>
fn range_query(&self, from: usize, to: usize) -> Result<Self::Value, TreeError>
Returns sum of values across all indexes in between from
and to
indexes
(including edges).
§Errors
This function will return an error if any index is out of bounds. GrowingFenwick tree implementation never return error.