use crate::Redact;
use crate::RedactionWriter;
use crate::Redactor;
#[cfg(feature = "json")]
#[test]
fn test_writer_json_handle_preserves_shared_structure_reason() {
let policy = crate::RedactionPolicy::builder()
.limits(|limits| {
limits.max_depth(1);
})
.expect("the limit draft should build")
.build()
.expect("the policy should build");
let mut batch = Redactor::new(policy).diagnostic_batch();
let _ = batch.redact_value(&JsonContainerWithValidNestedValue);
let output = batch.finish();
assert!(
output
.summary()
.reasons()
.contains(crate::RedactionReason::DepthLimitReached)
);
assert!(
!output
.summary()
.reasons()
.contains(crate::RedactionReason::OutputLimitReached)
);
}
#[cfg(feature = "json")]
struct JsonContainerWithValidNestedValue;
#[cfg(feature = "json")]
impl Redact for JsonContainerWithValidNestedValue {
fn write_redacted(&self, writer: &mut RedactionWriter<'_>) {
writer.record("JsonContainer", |fields| {
fields.json("payload", r#"{"outer":{"inner":"value"}}"#);
});
}
}