Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to add your own derivable traits, or are these fixed by the compiler?

Tags:

rust

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?

like image 541
andygavin Avatar asked Sep 17 '15 08:09

andygavin


1 Answers

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.

like image 109
fjh Avatar answered Sep 19 '22 13:09

fjh