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]

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]

Formats the value using the given formatter.

impl<T: Default, P: Deref<Target=T> + DerefMut> Deref for ClearOnDrop<T, P>
[src]

The resulting type after dereferencing

The method called to dereference a value

impl<T: Default, P: Deref<Target=T> + DerefMut> DerefMut for ClearOnDrop<T, P>
[src]

The method called to mutably dereference a value

impl<T: Default, P: Deref<Target=T> + DerefMut> Drop for ClearOnDrop<T, P>
[src]

A method called when the value goes out of scope. Read more