use std::fmt::Debug;
use std::sync::Arc;
use crate::Result;
use tor_netdoc::doc::{microdesc::Microdesc, netstatus::UncheckedMdConsensus};
pub type FilterConfig = Option<Arc<dyn DirFilter>>;
pub trait DirFilter: Debug + Send + Sync {
fn filter_consensus(&self, consensus: UncheckedMdConsensus) -> Result<UncheckedMdConsensus> {
Ok(consensus)
}
fn filter_md(&self, md: Microdesc) -> Result<Microdesc> {
Ok(md)
}
}
#[derive(Debug)]
#[allow(clippy::exhaustive_structs)]
pub struct NilFilter;
impl DirFilter for NilFilter {}