use std::fmt::Debug;
use std::sync::Arc;
use crate::Result;
use tor_netdoc::doc::{microdesc::MicrodescAndHash, 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: MicrodescAndHash) -> Result<MicrodescAndHash> {
Ok(md)
}
}
#[derive(Debug)]
#[allow(clippy::exhaustive_structs)]
pub struct NilFilter;
impl DirFilter for NilFilter {}