use std::collections::BTreeMap;
use http::HeaderMap;
use url::Url;
use super::{
LogSanitizePolicy,
LogSanitizer,
};
#[derive(Debug, Clone, PartialEq, Eq)]
pub(crate) struct SanitizedDebugger {
sanitizer: LogSanitizer,
}
impl SanitizedDebugger {
pub(crate) fn new(policy: &LogSanitizePolicy) -> Self {
Self {
sanitizer: LogSanitizer::for_debug(policy),
}
}
pub(crate) fn url(&self, url: &Url) -> String {
self.sanitizer.sanitize_url(url)
}
pub(crate) fn optional_url(&self, url: Option<&Url>) -> Option<String> {
url.map(|url| self.url(url))
}
pub(crate) fn headers(&self, headers: &HeaderMap) -> BTreeMap<String, Vec<String>> {
self.sanitizer.sanitize_header_map(headers)
}
pub(crate) fn diagnostic_text(&self, text: &str) -> String {
self.sanitizer.sanitize_diagnostic_text(text)
}
}