bouncer 1.0.1

Bouncer allows you handle your requests to third-party services with no worries, perhaps some worries.
Documentation
use curl::easy::Easy;
use std::io::{stdout, Write};
use std::thread;
extern crate bouncer;
use bouncer::bouncer::Bouncer;

fn dummy_function() {
    let mut easy = Easy::new();
    easy.url("http://httpbin.org/delay/3").unwrap();
    easy.write_function(|data| {
        stdout().write_all(data).unwrap();
        Ok(data.len())
    })
    .unwrap();
    easy.perform().unwrap();
}

#[test]
fn it_should_run() {
    thread::spawn(|| {
        assert_eq!(
            Bouncer::new(&dummy_function)
                .key(1)
                .rate_limit(2)
                .wait_time(3)
                .run()
                .is_ok(),
            true
        );
    });
    thread::spawn(|| {
        assert_eq!(
            Bouncer::new(&dummy_function)
                .key(2)
                .rate_limit(3)
                .wait_time(5)
                .run()
                .is_ok(),
            true
        );
    });
    assert_eq!(
        Bouncer::new(&dummy_function)
            .key(0)
            .rate_limit(5)
            .wait_time(1)
            .run()
            .is_ok(),
        true
    );
}