Traits
The second core pillar of Rust's type system is the use of traits, which allow the encoding of behavior that is
common across distinct types. A trait
is roughly equivalent to an interface type in other languages, but they are
also tied to Rust's generics (Item 12), to allow interface reuse without runtime overhead.
The Items in this chapter describe the standard traits that the Rust compiler and the Rust toolchain make available, and provide advice on how to design and use trait-encoded behavior.