failsafe 1.3.0

A circuit breaker implementation
Documentation
#![deny(warnings)]

use criterion::{black_box, criterion_group, criterion_main, Criterion};
use std::thread;
use std::time::Duration;

use failsafe::WindowedAdder;

fn add_and_sum(c: &mut Criterion) {
    let mut adder = WindowedAdder::new(Duration::from_millis(1000), 10);

    for _ in 0..10 {
        adder.add(42);
        thread::sleep(Duration::from_millis(100));
    }

    c.bench_function("add", |b| {
        b.iter(|| {
            adder.add(42);
            black_box(adder.sum());
        })
    });
}

criterion_group!(benches, add_and_sum);
criterion_main!(benches);