如何有条件地宣传货物依赖性?

问题描述

我有一个依赖于rust-siphashoptionally depends on Serde的库。据我所知,我可以通过启用features = ["serde_std"]features = ["serde_no_std"]将SipHash 并入Serde:

[dependencies]
serde = { version = "1.0",features = ["derive"],optional = true }

# ...

[features]
default = ["std"]
serde_std = ["std","serde/std"]
serde_no_std = ["serde/alloc"]
std = []

我希望我的库可以选择在有或没有Serde的情况下编译SipHash-也就是说,我的库的用户应该能够启用或禁用将在SipHash中启用或禁用Serde的功能,但是我不能弄清楚正确的Cargo.toml规范。我想要的是让我的库的使用者能够有选择地在我的库中启用Serde,以将依赖项传播到SipHash。像这样:

[dependencies]
# Compiles my library using SipHash without Serde:
# my-library = "1.0"
# Compiles my library using SipHash *with* Serde:
my-library = { version = "1.0",features = ["serde"] }

(或任何适当的约定)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)