#impl-block #inherent #traits #delegating

derive-trait

从内建实现块派生特质和委托实现

4个版本

0.0.4 2023年10月8日
0.0.3 2023年10月8日
0.0.2 2023年10月7日
0.0.1 2023年10月7日

#8 in #内建

每月 24 次下载
用于 dynec

Apache-2.0

23KB
426

derive-trait

从内建实现块派生特质和委托实现。

为什么走相反的方向?

此宏专为具有许多小型实现块和复杂类型边界的单个泛型类型而设计。

  • 如果没有特质,函数用户需要在每个请求支持关联函数的类型的功能中重复实现块中的所有类型边界。
  • 如果没有宏,函数作者需要为每个函数签名写四次(特质、内建实现、特质实现和委托)以及类型边界两次。
  • 使用 #[inherent] 宏,函数作者仍然需要写两次(特质和特质实现)。

请注意,仅建议在具有复杂类型边界的实现块中使用此crate。不建议盲目创建单一实现者的特质。


lib.rs:

从内建实现块派生特质和委托实现。

为什么走相反的方向?

此宏专为具有许多小型实现块和复杂类型边界的单个泛型类型而设计。

  • 如果没有特质,函数用户需要在每个请求支持关联函数的类型的功能中重复实现块中的所有类型边界。
  • 如果没有宏,函数作者需要为每个函数签名写四次(特质、内建实现、特质实现和委托)以及类型边界两次。
  • 使用 #[inherent] 宏,函数作者仍然需要写两次(特质和特质实现)。

请注意,仅建议在具有复杂类型边界的实现块中使用此crate。不建议盲目创建单一实现者的特质。

依赖关系

~0.7–1.2MB
~26K SLoC