pub trait MemoryDistribution: TestGetValue<Output = DistributionData> {
// Required methods
fn accumulate(&self, sample: u64);
fn accumulate_samples(&self, samples: Vec<i64>);
fn test_get_num_recorded_errors(&self, error: ErrorType) -> i32;
}Expand description
A description for the
MemoryDistributionMetric type.
When changing this trait, make sure all the operations are
implemented in the related type in ../metrics/.
Required Methods§
Sourcefn accumulate(&self, sample: u64)
fn accumulate(&self, sample: u64)
Sourcefn accumulate_samples(&self, samples: Vec<i64>)
fn accumulate_samples(&self, samples: Vec<i64>)
Accumulates the provided signed samples in the metric.
This is required so that the platform-specific code can provide us with
64 bit signed integers if no u64 comparable type is available. This
will take care of filtering and reporting errors for any provided negative
sample.
Please note that this assumes that the provided samples are already in
the “unit” declared by the instance of the metric type (e.g. if the the
instance this method was called on is using crate::MemoryUnit::Kilobyte, then
samples are assumed to be in that unit).
§Arguments
samples- The vector holding the samples to be recorded by the metric.
§Notes
Discards any negative value in samples and report an ErrorType::InvalidValue
for each of them.
Values bigger than 1 Terabyte (240 bytes) are truncated
and an ErrorType::InvalidValue error is recorded.