rustical_store/
secret.rs

1use derive_more::{AsRef, From};
2use serde::{Deserialize, Serialize};
3
4/// Wrapper type to prevent secrets from accidentally getting leaked into traces
5#[derive(From, Clone, Deserialize, Serialize, AsRef)]
6pub struct Secret<T>(pub T);
7
8impl<T> Secret<T> {
9    pub fn into_inner(self) -> T {
10        self.0
11    }
12}
13
14impl<T> std::fmt::Debug for Secret<T> {
15    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
16        f.write_str("Secret")
17    }
18}