use crate::redaction_engine_inner::RedactionEngineInner;
use crate::{IntoDataClass, RedactionEngine, Redactor};
#[derive(Debug)]
pub struct RedactionEngineBuilder {
inner: RedactionEngineInner,
}
impl RedactionEngineBuilder {
#[must_use]
pub(crate) fn new() -> Self {
Self {
inner: RedactionEngineInner::default(),
}
}
#[must_use]
pub fn add_class_redactor(mut self, data_class: impl IntoDataClass, redactor: impl Redactor + Send + Sync + 'static) -> Self {
self.inner.insert(data_class, redactor);
self
}
#[must_use]
pub fn set_fallback_redactor(mut self, redactor: impl Redactor + Send + Sync + 'static) -> Self {
self.inner.set_fallback(redactor);
self
}
#[must_use]
pub fn suppress_redaction(mut self, data_class: impl IntoDataClass) -> Self {
self.inner.suppress(data_class);
self
}
#[must_use]
pub fn build(self) -> RedactionEngine {
RedactionEngine::new(self.inner)
}
}