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