use crate::RedactionInspection;
use crate::RedactionInspectionError;
use crate::RedactionPolicy;
use crate::RedactionTextOutput;
#[derive(Debug, Clone)]
pub struct UriRedactionBoundary {
policy: RedactionPolicy,
}
impl UriRedactionBoundary {
#[must_use]
pub fn new(application: &RedactionPolicy) -> Self {
let mut policy = application.clone();
let _ = policy.set_disabled(false);
policy = policy.add_floor(crate::policy::RedactionFloor::standard());
policy = policy.with_masking(RedactionPolicy::standard().masking().clone());
Self { policy }
}
#[must_use]
#[inline(always)]
pub fn policy(&self) -> &RedactionPolicy {
&self.policy
}
#[must_use]
pub fn redact_uri(&self, text: &str) -> RedactionTextOutput {
crate::Redactor::new(self.policy.clone()).redact_uri(text)
}
pub fn inspect_uri(&self, text: &str) -> Result<RedactionInspection, RedactionInspectionError> {
crate::Redactor::new(self.policy.clone()).inspect_uri(text)
}
}