1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
use async_trait::async_trait;
use cornucopia_async::GenericClient;
use crate::{Id, Organization, Result};
#[async_trait]
pub trait Filters {
type Resolved: ResolvedFilters;
async fn resolve(
self,
client: &impl GenericClient,
organization_id: Id<Organization>,
) -> Result<Self::Resolved>;
}
pub trait ResolvedFilters {
type Item;
// Whether this item should be kept or filtered out
fn keep(&self, item: &Self::Item) -> bool;
}