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}