pub struct DiscardOnDrop<A: Discard>(/* private fields */);
Expand description
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.
Implementations§
Source§impl<A: Discard> DiscardOnDrop<A>
impl<A: Discard> DiscardOnDrop<A>
Sourcepub fn new(discarder: A) -> Self
pub fn new(discarder: A) -> Self
Creates a new DiscardOnDrop
.
When the DiscardOnDrop
is dropped it will automatically call discarder.discard()
.
See the module documentation for more details.
Sourcepub fn leak(this: Self) -> A
pub fn leak(this: Self) -> A
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
.