Skip to content

Commit 66aadec

Browse files
committed
doc: describe the Drop trait. cc: rust-lang#4217
1 parent 76a2891 commit 66aadec

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

doc/rust.md

+10
Original file line numberDiff line numberDiff line change
@@ -2845,6 +2845,16 @@ The kinds are:
28452845
sendable kind are copyable, as are managed boxes, managed closures,
28462846
trait types, and structural types built out of these.
28472847
Types with destructors (types that implement `Drop`) can not implement `Copy`.
2848+
`Drop`
2849+
: This is not strictly a kind, but its presence interacts with kinds: the `Drop`
2850+
trait provides a single method `finalize` that takes no parameters, and is run
2851+
when values of the type are dropped. Such a method is called a "destructor",
2852+
and are always executed in "top-down" order: a value is completely destroyed
2853+
before any of the values it owns run their destructors. Only `Owned` types
2854+
that do not implement `Copy` can implement `Drop`.
2855+
2856+
> **Note:** The `finalize` method may be renamed in future versions of Rust.
2857+
28482858
_Default_
28492859
: Types with destructors, closure environments,
28502860
and various other _non-first-class_ types,

0 commit comments

Comments
 (0)