For now, this reference is a best-effort document. We strive for validity
and completeness, but are not yet there. In the future, the docs and lang
teams will work together to figure out how best to do this. Until then, this
is a best-effort attempt. If you find something wrong or missing, file an
issue or
send in a pull request.

The Rust Reference

When an initializedvariable in Rust goes out of scope or a temporary
is no longer needed its destructor is run. Assignment also runs the
destructor of its left-hand operand, unless it's an uninitialized variable. If a
struct variable has been partially initialized, only its initialized fields
are dropped.