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

问题描述 投票:2回答:1

鉴于我的特性T和一大堆std / core数组(不是切片),我怎样才能为这些数组实现T可用于稳定Rust的其他包装盒?

从搜索周围,似乎我唯一的选择(不回避这个问题)是:

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

选项1是不可接受的。选项2导致非常长的编译时间(特别是当数组超过5000种类型时)。隐藏其自身特征背后的每一个实现,即特征impl-t-for-array-N有条件地编译为T的数组[U;N]的实现,确实大大降低了编译时间。 (编译时间从几十分钟到几秒钟)。但是,处理数千个功能造成的延迟仍然很明显。

使用功能和手动实现是解决稳定生锈这个问题最惯用的方法,还是有一种我不想要的惯用方法?

arrays rust
1个回答
1
投票

使用功能和手动实现是解决稳定生锈问题的最惯用方法

是。例如,检查Debug trait及其来源 - 正如您所见,Rust使用特殊宏来实现长度<= 32的数组

© www.soinside.com 2019 - 2024. All rights reserved.