4 releases

0.2.1 May 30, 2020
0.2.0 May 30, 2020
0.1.1 May 30, 2020
0.1.0 May 30, 2020

#2955 in Rust patterns

Custom license

7KB
86 lines

rjdebounce

Super simple library to do a super simple thing. Debounce a function. Zero dependencies.

Example

use rjdebounce::Bouncer;

let mut bouncer = Bouncer::new(Duration::from_secs(1));

let result = bouncer.debounce(|| {
    return 5 + 5;
})

assert_eq!(result.is_some(), true);
assert_eq!(result.unwrap(), 10);

OR...

use rjdebounce::Bouncer;

let func = || 5 + 6;
let delay = Duration::from_secs(1);

let mut bouncer = Bouncer::new(delay).with_func(func);

assert_eq!(bouncer.get_result().is_some(), false);
bouncer.execute();
assert_eq!(bouncer.get_result().is_some(), true);

Do I plan to expand on this library?

Yeah absolutely. I'd love to make a bigger lib.

Should I use this in production?

I mean... sure, if you want. But this is just practice for me. I do not have a licence for this and I purely wrote it to get a feel for cargo and package management. I will use this in my personal projects though. So feel free!

No runtime deps