It is not allowed to manually call destructors in Rust.
Erroneous code example:
struct Foo { x: i32, } impl Drop for Foo { fn drop(&mut self) { println!("kaboom"); } } fn main() { let mut x = Foo { x: -7 }; x.drop(); // error: explicit use of destructor method }
It is unnecessary to do this since drop is called automatically whenever a value goes out of scope. However, if you really need to drop a value by hand, you can use the std::mem::drop function:
struct Foo {
x: i32,
}
impl Drop for Foo {
fn drop(&mut self) {
println!("kaboom");
}
}
fn main() {
let mut x = Foo { x: -7 };
drop(x); // ok!
}