use std::fmt::Display;
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]
#[inline(always)]
pub fn redact_view<'value, T: ?Sized>(&self, value: &'value T) -> crate::RedactedView<'value, T> {
crate::RedactedView::new(value, self.clone())
}
#[must_use]
#[inline]
pub fn redact_text<T>(&self, value: &T) -> RedactionTextOutput
where
T: Redact + ?Sized,
{
let mut session = self.text_runtime();
let _ = session.value(value);
session.finish()
}
#[inline]
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]
#[inline]
pub fn redact_field<T>(&self, field: &str, value: &T) -> RedactionTextOutput
where
T: Display + ?Sized,
{
let mut session = self.text_runtime();
let _ = session.field(field, value);
session.finish()
}
#[inline]
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()
}
}