Expand description
§Qubit Sanitize
Provides reusable sanitization utilities for logs, diagnostics, and structured debug output.
The core API sanitizes one (field, value) pair at a time and requires the
caller to choose a NameMatchMode.
use qubit_sanitize::{
FieldSanitizer,
NameMatchMode,
};
let sanitizer = FieldSanitizer::default();
assert_eq!(
sanitizer.sanitize_value("password", "secret", NameMatchMode::Exact),
"<redacted>",
);
assert_eq!(
sanitizer.sanitize_value("OPENAI_API_KEY", "abcdef", NameMatchMode::Exact),
"abcdef",
);
assert_eq!(
sanitizer.sanitize_value(
"OPENAI_API_KEY",
"abcdef",
NameMatchMode::ExactOrSuffix,
),
"****",
);Adapter APIs apply the same explicit matching mode to structured inputs.
use http::header::{
AUTHORIZATION,
HeaderValue,
};
use qubit_sanitize::{
HttpHeaderSanitizer,
NameMatchMode,
};
let sanitizer = HttpHeaderSanitizer::default();
let value = HeaderValue::from_static("Bearer abcdef");
assert_eq!(
sanitizer.sanitize_value(&AUTHORIZATION, &value, NameMatchMode::ExactOrSuffix),
"****",
);Re-exports§
pub use adapter::ArgvSanitizer;pub use adapter::EnvSanitizer;pub use adapter::FormUrlEncodedSanitizer;pub use adapter::HttpBodySanitizer;pub use adapter::HttpHeaderSanitizer;pub use adapter::UrlSanitizer;pub use core::DEFAULT_EXTRA_FIELDS;pub use core::FieldSanitizePolicy;pub use core::FieldSanitizer;pub use core::MaskPolicies;pub use core::MaskPolicy;pub use core::NameMatchMode;pub use core::SensitiveFieldPreset;pub use core::SensitiveFields;pub use core::SensitivityLevel;pub use core::canonicalize_field_name;