Skip to main content

obfuscate/impls/
std.rs

1use std::fmt::Formatter;
2
3use crate::{Obfuscate, compute_hash};
4
5impl Obfuscate for u32 {
6    fn obfuscate(&self, f: &mut Formatter<'_>) -> core::fmt::Result {
7        f.write_str(hex::encode(compute_hash(&self.to_le_bytes())).as_str())
8    }
9}
10
11impl Obfuscate for [u8] {
12    fn obfuscate(&self, f: &mut Formatter<'_>) -> core::fmt::Result {
13        f.write_str(hex::encode(compute_hash(self)).as_str())
14    }
15}
16
17impl Obfuscate for Vec<u8> {
18    fn obfuscate(&self, f: &mut Formatter<'_>) -> core::fmt::Result {
19        (**self).obfuscate(f)
20    }
21}
22
23impl<T: Obfuscate> Obfuscate for Vec<T> {
24    fn obfuscate(&self, f: &mut Formatter<'_>) -> core::fmt::Result {
25        f.write_str("[")?;
26        for item in self.iter() {
27            item.obfuscate(f)?;
28        }
29        f.write_str("]")
30    }
31}
32
33impl<T: Obfuscate> Obfuscate for Option<T> {
34    fn obfuscate(&self, f: &mut Formatter<'_>) -> core::fmt::Result {
35        match self {
36            Some(item) => {
37                f.write_str("Some(")?;
38                item.obfuscate(f)?;
39                f.write_str(")")
40            }
41            None => f.write_str("None"),
42        }
43    }
44}