1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
pub struct PanicOnDrop(&'static str);
impl PanicOnDrop {
pub fn new(message: &'static str) -> Self {
Self(message)
}
pub fn disengage(self) {
std::mem::forget(self);
}
}
impl Drop for PanicOnDrop {
fn drop(&mut self) {
panic!("Cannot drop value: {}", self.0);
}
}