use masking::{PeekInterface, Secret, Strategy}; use serde::{Deserialize, Serialize, Serializer}; #[derive(Clone, PartialEq, Debug, Deserialize)] /// Represents a hashed string using blake3's hashing strategy. pub struct HashedString>(Secret); impl> Serialize for HashedString { fn serialize(&self, serializer: S) -> Result where S: Serializer, { let hashed_value = blake3::hash(self.0.peek().as_bytes()).to_hex(); hashed_value.serialize(serializer) } } impl> From> for HashedString { fn from(value: Secret) -> Self { Self(value) } }