Hasty Briefsbeta

双语

# [derive(Clone)] Is Broken

10 months ago
  • #Macros
  • #Rust
  • #Programming
  • 代码示例讨论了Rust的`#[derive(Clone)]`及其过于严格的限制要求。
  • 第一个示例展示了一个本应能编译通过的`WrapArc<T>`结构体,但由于Rust的`Clone`派生要求而无法通过。
  • 第二个示例展示了`PartialEq`和`Eq`特性存在的类似问题。
  • 核心问题在于Rust内置的派生特性要求所有泛型参数都必须实现该特性,即使这些参数未被使用。
  • 提出了两种解决方案:长期的RFC流程或快速的自定义宏方法。
  • 作者建议在`derive_more` crate中实现限制较少的派生宏,或创建一个新的crate来解决这个问题。