繁体   English   中英

在稳定的 Rust 中为大量数组实现特征的惯用方法是什么?

[英]What is the idiomatic way to implement a trait for a large number of arrays in stable Rust?

鉴于我的 trait T和一大组std / core数组(不是 slices ),我怎样才能使这些数组的T实现可用于稳定的 Rust 上的其他板条箱?

通过四处搜索,似乎我唯一的选择(不回避这个问题)是:

  1. 等待稳定实现 rfc 2000 的 Rust 发布: https : //github.com/rust-lang/rust/issues/44580
  2. 为每个数组手动实现特征。

选项 1 是不可接受的。 选项 2 会导致很长的编译时间(尤其是当数组集超过 5000 种类型时)。 将每个单独的实现隐藏在它自己的特性后面,即特性impl-t-for-array-N有条件地在T的实现中编译为数组[U;N] ,确实大大降低了编译时间。 (编译时间从几十分钟变成了几秒钟)。 然而,处理数千个特征造成的延迟仍然很明显。

使用功能和手动实现是在稳定 Rust 上处理这个问题的最惯用的方法,还是我缺少更惯用的方法?

使用功能和手动实现是在稳定锈上处理这个问题的最惯用的方法

是的。 例如,检查Debug trait 及其来源 - 正如你所看到的,rust 使用特殊的宏来为长度 <= 32 的数组实现它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM