use crate::ebloom::error::Result;
use async_trait::async_trait;
#[async_trait]
pub trait ExpiringBloomFilterOps {
fn insert(&self, item: &[u8]) -> Result<()>;
fn contains(&self, item: &[u8]) -> Result<bool>;
fn clear(&self) -> Result<()>;
async fn cleanup_expired_levels(&self) -> Result<()>;
}
pub trait BulkExpiringBloomFilterOps {
fn insert_bulk(&self, items: &[&[u8]]) -> Result<()>;
fn contains_bulk(&self, items: &[&[u8]]) -> Result<Vec<bool>>;
}
pub trait ExpiringBloomFilterStats {
fn capacity_per_level(&self) -> usize;
fn target_fpr(&self) -> f64;
fn total_insert_count(&self) -> u64;
fn active_levels(&self) -> usize;
fn num_levels(&self) -> usize;
}