Document the DropBomb

This commit is contained in:
Joshua Salzedo 2021-03-24 12:36:02 -07:00
parent 08990b2f6d
commit da59112e86
No known key found for this signature in database
GPG Key ID: C3D0EB484493B731

View File

@ -1,6 +1,12 @@
use crate::fmt::panic; use crate::fmt::panic;
use core::mem; use core::mem;
/// An explosive ordinance that panics if it is improperly disposed of.
///
/// This is to forbid dropping futures, when there is absolutely no other choice.
///
/// To correctly dispose of this device, call the [defuse](struct.DropBomb.html#method.defuse)
/// method before this object is dropped.
pub struct DropBomb { pub struct DropBomb {
_private: (), _private: (),
} }
@ -9,7 +15,7 @@ impl DropBomb {
pub fn new() -> Self { pub fn new() -> Self {
Self { _private: () } Self { _private: () }
} }
// Diffuses the bomb, rendering it safe to drop.
pub fn defuse(self) { pub fn defuse(self) {
mem::forget(self) mem::forget(self)
} }