【问题标题】:What is the recommended way to specify or import the Signed trait in Rust?在 Rust 中指定或导入 Signed 特征的推荐方法是什么?
【发布时间】:2016-11-22 18:26:17
【问题描述】:

Signed 特征 used to exist in the standard library,但现在已经消失了。一年前,someone asked about implementing signed traits on reddit,但是线程没有得出结论,作者继续在 Rust 语言 Discourse 网站with similar results 上再次提问。

现在num crate 中有一个Signed 特征,但我有两个担忧:

1) 我真的不明白将 crate 导入到我的项目中是否会增加生成的文件大小的开销,尤其是如果我只使用其中的一个特征。

2) 鉴于这种特性的明显不稳定性,如果它不能保持稳定和兼容,我现在对在我的项目中添加另一个依赖项持谨慎态度。

在这里绘制图表的正确路线是什么?

【问题讨论】:

    标签: dependencies rust traits


    【解决方案1】:

    使用箱子。编译器将确保创建一个高效的二进制文件。您可能不会注意到文件大小的任何有趣变化。货物将确保实际使用板条箱很容易。

    特征的“稳定性”不是特征的固有属性。大多数情况下,该特征的有用性是值得怀疑的。标准库必须是保守的——所有存在的东西都必须在Rust 1.x 的整个生命周期 中得到支持(并且没有 Rust 2.x 的计划)。因此,向标准库添加内容非常受限。

    这就是为什么板条箱是一等公民。现在由 num crate 的维护者决定支持该 trait 多长时间。如果他们遵循 semver(他们应该这样做),那么如果他们放弃对它的支持应该是非常明显的。此外,一旦您选择了要编译的 crate 版本,在您执行 cargo update 之前它永远不会改变,因此您可以安全地使用它。

    在最坏的情况下,假设 num crate 决定放弃该特征。在这种情况下,可以简单地复制实现并生成您自己的 crate。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-18
      • 2018-09-17
      • 2023-02-21
      • 2021-09-21
      • 2017-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多