Module grove::data [−][src]
Expand description
This module representes the values that can be put inside a segment tree, the summaries that you can receive from a query about a segment in the segment tree, and the actions that you can perform on the segment tree.
In order for a choice of types for Value
, Summary
and Action
, to work
in a segment tree, they must be an instance of the Data
trait.
In addition, this module provides the SizedSummary
and Keyed
traits,
and some common possible instantiations in the example_data
module.
Re-exports
pub use example_data::Keyed;
pub use example_data::SizedSummary;
Modules
A module for examples of possible instantiations for Data::Value
, Data::Summary
,
Data::Action
and Data
itself.
Traits
Trait representing actions. this entailes having an identity action (Default
), being able to compose actions
(Add
<Output=Self>
), checking whether an action is the identity action, and checking whether this action
reverses subsegments.
Trait representation actions on a type V
. If A: Acts<V>
that means that given any action: A
,
we can apply it to any val: V
. This trait is used to represent the actions on
values and summaries used by segment trees.
This trait represents the data that will be stored inside the tree.