rotating-bloom-filter 0.1.0

A probabilistic data structure that rotates out old items to maintain recent membership.
Documentation
Rotating Bloom Filter
=====================

A probabilistic data structure that maintains recent items using a dual-buffer rotation mechanism.

`RotatingBloomFilter` provides membership testing for recently inserted items, with older items
automatically rotating out. Items are guaranteed to be retained for at least a minimum retention
period, typically remaining for up to twice that duration.


Features
--------

- **Time-limited tracking**: Only maintains membership information for recently inserted items
- **Type flexible**: Works with any hashable type


How it works
------------

The filter maintains two internal Bloom filters:

1. **Current buffer**: Holds items from previous rotations plus ongoing insertions
2. **Next buffer**: Accumulates new insertions until rotation

When the minimum retention threshold is reached, the _next_ buffer becomes the new _current_ buffer,
and a new _next_ buffer is created.


Example
-------

```rust
use rotating_bloom_filter::RotatingBloomFilter;
use rand_core::OsRng;

let mut filter = RotatingBloomFilter::new(0.01, 1000, &mut OsRng);

filter.insert("hello");
assert!(filter.contains("hello"));

// "hello" will be retained for at least 1000 insertions, but sticks around to 2000 insertions if
// the filter continues to be used.
```