是否可以添加自己的可导出特征,还是由编译器修复?

and*_*vin 8 rust

derive属性允许为数据结构自动实现某些特征.参考文献给出了一个例子:

#[derive(PartialEq, Clone)]
struct Foo<T> {
   a: i32,
   b: T
}
Run Code Online (Sandbox Code Playgroud)

是否可以添加自己的可导出特征,还是由编译器修复?

fjh*_*fjh 9

编译器中的少量可派生特征是硬编码的.

Rust 1.15稳定了程序宏,允许创建自定义derive属性.如果你需要在1.15之前支持Rust的稳定版本,那么有一个使用宏hackery来获取自定义特征的crate.


Jel*_*teF 5

Rust 1.15的发布允许导出自定义特征。他们最简单的方法是使用synquote条板箱。