【问题标题】:How to correctly deprecate a crate feature如何正确弃用 crate 功能
【发布时间】:2019-11-16 22:58:42
【问题描述】:

我有一个箱子,到目前为止,它有一个不再需要的功能。我想弃用它,但不知道如何。

到目前为止,我的计划是先将其设为默认功能,然后呢?

【问题讨论】:

  • 大概你想引入一个警告,然后一段时间后,增加 semver 并完全删除该功能,所以这是一个硬错误。真的没有一个很好的方法来做到这一点。一种非常笨拙的方法是使用该功能启用一些会触发警告的代码。但是,您无法控制该警告的外观。有Diagnostics API,它可能可以通过程序宏来做你需要的事情,但它还不稳定。

标签: rust deprecated rust-cargo conditional-compilation


【解决方案1】:

你可以把它放在以前依赖这个特性的函数上:

#[cfg_attr(feature = "unwanted", deprecated(note = "don't use the feature"))]

仅当该功能已启用时才会显示警告。但是,警告会有点误导,因为它会指向函数。

当您完全删除该功能时,您应该增加主要版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-05
    • 2019-09-28
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    相关资源
    最近更新 更多