pub struct Secret(/* private fields */);Expand description
Wrapper for sensitive strings with redacted Debug/Display.
The inner value is wrapped in Zeroizing which overwrites the memory on drop.
Clone is intentionally not derived — secrets must be explicitly duplicated via
Secret::new(existing.expose().to_owned()).
§Clone is not implemented
ⓘ
use zeph_common::secret::Secret;
let s = Secret::new("x");
let _ = s.clone(); // must not compile — Secret intentionally does not implement CloneImplementations§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Secret
impl<'de> Deserialize<'de> for Secret
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for Secret
impl RefUnwindSafe for Secret
impl Send for Secret
impl Sync for Secret
impl Unpin for Secret
impl UnsafeUnpin for Secret
impl UnwindSafe for Secret
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more