pub struct ExpiringAtomicFilter<H = DefaultHasher>{
pub ttl: u64,
pub expiration_period: u64,
pub created: u64,
/* private fields */
}Expand description
A serializable approximate membership query filter supporting lock-free concurrency and time-based expiration.
Fields§
§ttl: u64Number of seconds each item is expected to remain in the filter. Items may remain up to
ttl + expiration_period, but no longer than that. Must be a multiple of expiration_period.
expiration_period: u64Maximum number of seconds between expiration events.
created: u64Unix timestamp of when the filter was created. Needed to determine which slot in the buffer is selected for insert, lock, and expire operations.
Implementations§
Source§impl<H> ExpiringAtomicFilter<H>
impl<H> ExpiringAtomicFilter<H>
Sourcepub fn insert<T: ?Sized + Hash>(&self, item: &T) -> Result<(), Error>
pub fn insert<T: ?Sized + Hash>(&self, item: &T) -> Result<(), Error>
Insert an item into the filter.
Returns Ok(()) if the item was inserted, or Error::NotEnoughSpace if the filter is full.
https://docs.rs/atomic-cuckoo-filter/*/atomic_cuckoo_filter/struct.CuckooFilter.html#method.insert
Sourcepub fn insert_unique<T: ?Sized + Hash>(&self, item: &T) -> Result<bool, Error>
pub fn insert_unique<T: ?Sized + Hash>(&self, item: &T) -> Result<bool, Error>
Check if an item is in the filter and insert it if is not present (atomically).
Returns Ok(true) if the item was inserted, Ok(false) if it was already present, or Error::NotEnoughSpace if the filter is full.
Sourcepub fn count<T: ?Sized + Hash>(&self, item: &T) -> usize
pub fn count<T: ?Sized + Hash>(&self, item: &T) -> usize
Counts the number of occurrences of an item in the filter.
https://docs.rs/atomic-cuckoo-filter/*/atomic_cuckoo_filter/struct.CuckooFilter.html#method.count
Sourcepub fn remove<T: ?Sized + Hash>(&self, item: &T) -> bool
pub fn remove<T: ?Sized + Hash>(&self, item: &T) -> bool
Attempts to remove an item from the filter.
Returns true if the item was successfully removed, or false if it was not found.
https://docs.rs/atomic-cuckoo-filter/*/atomic_cuckoo_filter/struct.CuckooFilter.html#method.remove
Sourcepub fn contains<T: ?Sized + Hash>(&self, item: &T) -> bool
pub fn contains<T: ?Sized + Hash>(&self, item: &T) -> bool
Check if an item is in the filter.
Returns true if the item is possibly in the filter (may have false positives), false if it is definitely not in the filter.
https://docs.rs/atomic-cuckoo-filter/*/atomic_cuckoo_filter/struct.CuckooFilter.html#method.contains
Sourcepub fn lock(&self, kind: LockKind) -> Option<Lock<'_>>
pub fn lock(&self, kind: LockKind) -> Option<Lock<'_>>
Acquires a lock on the filter, if necessary.
Returns Some(Lock) if a lock is needed, or None if no locking is required.
https://docs.rs/atomic-cuckoo-filter/*/atomic_cuckoo_filter/struct.CuckooFilter.html#method.lock
Sourcepub fn expire_as_of(&self, now: u64) -> usize
pub fn expire_as_of(&self, now: u64) -> usize
Returns the number of items that were removed.
Source§impl ExpiringAtomicFilter<DefaultHasher>
impl ExpiringAtomicFilter<DefaultHasher>
Sourcepub fn builder() -> ExpiringAtomicFilterBuilder<DefaultHasher>
pub fn builder() -> ExpiringAtomicFilterBuilder<DefaultHasher>
Create a new ExpiringAtomicFilterBuilder with default settings
Sourcepub fn new() -> ExpiringAtomicFilter<DefaultHasher>
pub fn new() -> ExpiringAtomicFilter<DefaultHasher>
Create a new ExpiringAtomicFilter with default settings
Sourcepub fn with_capacity(capacity: usize) -> ExpiringAtomicFilter<DefaultHasher>
pub fn with_capacity(capacity: usize) -> ExpiringAtomicFilter<DefaultHasher>
Create a new ExpiringAtomicFilter with the specified capacity