use qubit_redact::{
RedactedDebug,
redacted_debug,
};
use super::internal::{
NoDebug,
PanicDebug,
};
#[inline(always)]
fn wrap_with_lifetime<'a, T: ?Sized>(value: &'a T) -> RedactedDebug<'a, T> {
redacted_debug(value)
}
#[test]
fn test_redacted_debug_emits_marker_without_calling_inner_debug() {
let redacted = redacted_debug(&PanicDebug);
assert_eq!(format!("{redacted:?}"), "<redacted>");
assert_eq!(format!("{redacted:#?}"), "<redacted>");
}
#[test]
fn test_redacted_debug_preserves_lifetime_and_accepts_unsized_values() {
let secret = String::from("secret");
let redacted: RedactedDebug<'_, str> = wrap_with_lifetime(secret.as_str());
let values = [NoDebug];
let redacted_slice: RedactedDebug<'_, [NoDebug]> =
wrap_with_lifetime(&values[..]);
assert_eq!(format!("{redacted:?}"), "<redacted>");
assert_eq!(format!("{redacted_slice:?}"), "<redacted>");
}