pub struct ChartAggregate<T: 'static> { /* private fields */ }Expand description
A bucket/rollup projection over a ChartModel<T>.
See the module documentation for semantics.
Implementations§
Source§impl<T: Clone + 'static> ChartAggregate<T>
impl<T: Clone + 'static> ChartAggregate<T>
Sourcepub fn new(
source: ChartModel<T>,
bucket_size: usize,
aggregate_fn: ChartAggregateFn,
) -> Self
pub fn new( source: ChartModel<T>, bucket_size: usize, aggregate_fn: ChartAggregateFn, ) -> Self
Wrap source, bucketing every series into groups of bucket_size
source points reduced via aggregate_fn. bucket_size is clamped
to a minimum of 1.
Sourcepub fn set_bucket_size(&self, bucket_size: usize)
pub fn set_bucket_size(&self, bucket_size: usize)
Change the bucket size, rebuilding every series and emitting
ChartChange::Reset. Clamped to a minimum of 1.
Sourcepub fn set_aggregate_fn(&self, aggregate_fn: ChartAggregateFn)
pub fn set_aggregate_fn(&self, aggregate_fn: ChartAggregateFn)
Change the aggregate reduction, rebuilding every series and emitting
ChartChange::Reset.
Source§impl<T: 'static> ChartAggregate<T>
impl<T: 'static> ChartAggregate<T>
Sourcepub fn bucket_size(&self) -> usize
pub fn bucket_size(&self) -> usize
The configured bucket size.
Sourcepub fn series_count(&self) -> usize
pub fn series_count(&self) -> usize
Number of series (same set as the source).
Sourcepub fn series_ids(&self) -> Vec<SeriesId>
pub fn series_ids(&self) -> Vec<SeriesId>
The series ids, in the source’s display order.
Sourcepub fn point_count(&self, series: SeriesId) -> usize
pub fn point_count(&self, series: SeriesId) -> usize
Number of buckets currently materialized for series.
Sourcepub fn with_series<R>(
&self,
series: SeriesId,
f: impl FnOnce(&str, Option<&ColorProp>, bool) -> R,
) -> Option<R>
pub fn with_series<R>( &self, series: SeriesId, f: impl FnOnce(&str, Option<&ColorProp>, bool) -> R, ) -> Option<R>
Access a series’ metadata (delegates straight through to the
source). Returns None if series is unknown.
Sourcepub fn with_point<R>(
&self,
series: SeriesId,
index: usize,
f: impl FnOnce(&ChartDatum<T>) -> R,
) -> Option<R>
pub fn with_point<R>( &self, series: SeriesId, index: usize, f: impl FnOnce(&ChartDatum<T>) -> R, ) -> Option<R>
Access the bucket at index within series. Returns None if
series or index is unknown.
Sourcepub fn observe_changes(
&self,
f: impl Fn(&ChartChange) + 'static,
) -> ObserverHandle
pub fn observe_changes( &self, f: impl Fn(&ChartChange) + 'static, ) -> ObserverHandle
Register an observer for translated bucket changes. Returns an
ObserverHandle — dropping it removes the callback.
Sourcepub fn first_changed_index(&self, series: SeriesId) -> Option<usize>
pub fn first_changed_index(&self, series: SeriesId) -> Option<usize>
First bucket index of series whose content may differ since the
latest translated change. None if series is unknown or
unaffected yet.