sealwd 0.5.0

Secure password and token management library for Rust, featuring hashing, encryption, and random generation.
Documentation
macro_rules! impl_redacted_fmt {
    ($type:ty) => {
        impl std::fmt::Debug for $type {
            fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
                write!(f, "<redacted>")
            }
        }

        impl std::fmt::Display for $type {
            fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
                write!(f, "<redacted>")
            }
        }
    };
}

pub(crate) use impl_redacted_fmt;

#[cfg(test)]
mod tests {
    use super::*;

    #[allow(dead_code)]
    struct Test {
        x: i32,
    }

    impl_redacted_fmt!(Test);

    #[test]
    fn redacted_debug() {
        let obj = Test { x: 42 };

        assert_eq!(format!("{:?}", obj), "<redacted>");
    }

    #[test]
    fn redacted_display() {
        let obj = Test { x: 42 };

        assert_eq!(format!("{obj}"), "<redacted>");
    }
}