Crates.io | b2histogram |
lib.rs | b2histogram |
version | 1.0.1 |
source | src |
created_at | 2019-09-21 21:11:42.826435 |
updated_at | 2024-01-06 01:28:22.381028 |
description | A compact and efficient integer histogram with fixed memory footprint, constant runtime performance, and (WIP) compact binary serialization. |
homepage | https://github.com/int08h/b2histogram |
repository | https://github.com/int08h/b2histogram |
max_upload_size | |
id | 166659 |
size | 30,336 |
A fast and efficient 64-bit integer histogram with power-of-2 spaced buckets.
no_std
supportAdd this to your Cargo.toml
:
[dependencies]
b2histogram = "1.0.1"
and this to your crate root:
extern crate b2histogram;
extern crate b2histogram;
use b2histogram::Base2Histogram;
fn main() {
let mut hist = Base2Histogram::new();
hist.record(0); // Record a single observation of '0'
hist.record(11); //
hist.record(11); // Two observations of '11'
hist.record_n(300_000, 6); // Six observations of 300,000
// Retrieve counts directly
println!("Observations for 300,000: {}", hist.observations(300_000));
// Retrieve the `Bucket` covering a given value
println!("Bucket corresponding to '11': {:?}", hist.bucket_for(11));
// Iterate buckets that have observations
for bucket in hist.iter().filter(|b| b.count > 0) {
println!("({:5}, {:5}): {}", bucket.begin, bucket.end, bucket.count);
}
}
See the documentation for more.