use crate::RedactionStrategy;
use std::fmt;
#[derive(Default, Clone)]
pub struct PasswordRedactor;
impl<T> RedactionStrategy<T> for PasswordRedactor {
fn display(&self, _value: &T, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "********")
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::Redacted;
fn password(input: &str) -> String {
Redacted::<_, PasswordRedactor>::new(input).to_string()
}
#[test]
fn test_fixed_length() {
assert_eq!(password("short"), "********");
assert_eq!(password("a_very_long_password_123!"), "********");
assert_eq!(password("x"), "********");
assert_eq!(password(""), "********");
}
}