鉴于我的特性T
和一大堆std
/ core
数组(不是切片),我怎样才能为这些数组实现T
可用于稳定Rust的其他包装盒?
从搜索周围,似乎我唯一的选择(不回避这个问题)是:
选项1是不可接受的。选项2导致非常长的编译时间(特别是当数组超过5000种类型时)。隐藏其自身特征背后的每一个实现,即特征impl-t-for-array-N
有条件地编译为T
的数组[U;N]
的实现,确实大大降低了编译时间。 (编译时间从几十分钟到几秒钟)。但是,处理数千个功能造成的延迟仍然很明显。
使用功能和手动实现是解决稳定生锈这个问题最惯用的方法,还是有一种我不想要的惯用方法?
使用功能和手动实现是解决稳定生锈问题的最惯用方法
是。例如,检查Debug trait及其来源 - 正如您所见,Rust使用特殊宏来实现长度<= 32的数组