= weighted-sampling
Rust library for weighted reservoir sampling using Algorithm A-Chao.
== Usage
[source,rust]
----
use weighted_sampling::WeightedReservoirSampler;
use rand::thread_rng;
let mut sampler = WeightedReservoirSampler::new();
let mut rng = thread_rng();
// Process items from a stream.
sampler.sample(10, "item1", &mut rng); // weight: 10
sampler.sample(5, "item2", &mut rng); // weight: 5
sampler.sample(15, "item3", &mut rng); // weight: 15
// Get the selected item.
if let Some(selected) = sampler.selected() {
println!("Selected: {}", selected);
}
// Or take ownership.
let result = sampler.into_selected();
----