weighted-sampling 0.1.0

Weighted reservoir sampling using Algorithm A-Chao
Documentation
= 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();
----