Struct clear_on_drop::ClearOnDrop
[−]
[src]
pub struct ClearOnDrop<T: Default, P: Deref<Target=T> + DerefMut> { /* fields omitted */ }
Zeroizes a storage location when dropped.
This struct contains a reference to a memory location, either as a
mutable borrow (&mut T
), or as a owned container (Box<T>
or
similar). When this struct is dropped, the referenced location is
overwritten with its Default
value.
Example
#[derive(Default)] struct MyData { value: u32, } let mut place = MyData { value: 0 }; { let mut key = ClearOnDrop::new(&mut place); key.value = 0x012345678; // ... } // key is dropped here assert_eq!(place.value, 0);
Methods
impl<T: Default, P: Deref<Target=T> + DerefMut> ClearOnDrop<T, P>
[src]
fn new(place: P) -> Self
Creates a new ClearOnDrop
which clears place
on drop.
The place
parameter can be a &mut T
, a Box<T>
, or other
containers which behave like Box<T>
.
Trait Implementations
impl<T: Default, P: Deref<Target=T> + DerefMut + Debug> Debug for ClearOnDrop<T, P>
[src]
impl<T: Default, P: Deref<Target=T> + DerefMut> Deref for ClearOnDrop<T, P>
[src]
type Target = T
The resulting type after dereferencing
fn deref(&self) -> &Self::Target
The method called to dereference a value