The derive
attribute allows certain traits to be automatically implemented for data structures. The reference gives the example:
#[derive(PartialEq, Clone)]
struct Foo<T> {
a: i32,
b: T
}
Is it possible to add your own derivable traits, or are these fixed by the compiler?
A small number of derivable traits are hard-coded in the compiler.
Rust 1.15 stabilized procedural macros which allow for the creation of custom derive
attributes. If you need to support stable versions of Rust before 1.15, there is a crate that uses macro hackery to derive custom traits.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With