Struct discard::DiscardOnDrop
[−]
[src]
#[must_use = "\n\n The DiscardOnDrop is unused, which causes it to be immediately discarded.\n You probably don\'t want that to happen.\n\n How to fix this:\n\n * Store the DiscardOnDrop in a variable or data structure.\n\n * Or use the DiscardOnDrop::leak function which will cause it to not be\n discarded (this *will* leak memory!).\n\n See the documentation for more details.\n"]pub struct DiscardOnDrop<A: Discard>(_);
If you have a value which implements Discard
, you can use
DiscardOnDrop::new(value)
which will wrap the value.
When the wrapper is dropped it will automatically call value.discard()
.
You can use the DiscardOnDrop::leak
function to unwrap it (which returns value
). This causes
it to no longer call discard
when it is dropped, which
means it will leak memory unless you manually call discard
.
See the module documentation for more details.
Methods
impl<A: Discard> DiscardOnDrop<A>
[src]
fn new(discarder: A) -> Self
[src]
Creates a new DiscardOnDrop
.
When the DiscardOnDrop
is dropped it will automatically call discarder.discard()
.
See the module documentation for more details.
fn leak(this: Self) -> A
[src]
Returns the wrapped discarder
.
It will no longer automatically call discarder.discard()
, so this will leak memory
unless you manually call discarder.discard()
.
See the module documentation for more details.
This is implemented as a function (not a method) so that way it doesn't interfere with any of the
methods on discarder
.
Trait Implementations
impl<A: Debug + Discard> Debug for DiscardOnDrop<A>
[src]
impl<A: Discard> Drop for DiscardOnDrop<A>
[src]
impl<A: Discard> Deref for DiscardOnDrop<A>
[src]
type Target = A
The resulting type after dereferencing.
fn deref(&self) -> &Self::Target
[src]
Dereferences the value.