use super::Redactor;
use crate::Redact;
use crate::RedactionInspection;
use crate::RedactionInspectionError;
use crate::RedactionTextOutput;
use crate::runtime::runtime_session::RuntimeSession;
impl Redactor {
#[must_use]
pub fn redact<T>(&self, value: &T) -> RedactionTextOutput
where
T: Redact + ?Sized,
{
let mut session = self.text_runtime();
let _ = session.value(value);
session.finish()
}
pub fn inspect<T>(&self, value: &T) -> Result<RedactionInspection, RedactionInspectionError>
where
T: Redact + ?Sized,
{
let mut session = self.inspection_runtime();
session.inspect(value);
session.finish()
}
#[must_use]
pub fn redact_field<T>(&self, field: &str, value: &T) -> RedactionTextOutput
where
T: std::fmt::Display + ?Sized,
{
let mut session = self.text_runtime();
let _ = session.field(field, value);
session.finish()
}
pub fn inspect_field(&self, field: &str, value: &str) -> Result<RedactionInspection, RedactionInspectionError> {
let mut session = self.inspection_runtime();
session.inspect_field(field, value);
session.finish()
}
}