Random 库中的特征边界不满足错误
我正在尝试使用secp256k1库生成密钥对 在官方文档中,我发现了以下代码:Random 库中的特征边界不满足错误,random,rust,traits,Random,Rust,Traits,我正在尝试使用secp256k1库生成密钥对 在官方文档中,我发现了以下代码: use rand::OsRng; use secp256k1::{Secp256k1, Message}; let secp = Secp256k1::new(); let mut rng = OsRng::new().expect("OsRng"); let (secret_key, public_key) = secp.generate_keypair(&mut rng); 我把这个放在我的货物里。t
use rand::OsRng;
use secp256k1::{Secp256k1, Message};
let secp = Secp256k1::new();
let mut rng = OsRng::new().expect("OsRng");
let (secret_key, public_key) = secp.generate_keypair(&mut rng);
我把这个放在我的货物里。toml
:
[dependencies]
rand = "0.6.1"
[dependencies.secp256k1]
features = ["rand"]
version = "0.12.0"
但是,我遇到了以下编译错误:
| secp.generate_密钥对(&mut rng);
|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
`std::result::result`
我对生锈还很陌生,我正在努力去理解它,但我发现这非常困难。请解释我的错误。谢谢 这似乎是板条箱版本不匹配。
rand
板条箱的最新版本是0.6.1
,但secp256k1 0.12.0
取决于更旧的版本-0.4.3
快速修复方法是使用较旧版本的rand
:
[dependencies]
rand = "0.4.3"
并考虑要求<代码> SEC2525K1<代码>的作者更新它们的依赖关系。
我发现这一点的方法是在
Cargo.lock
文件中搜索,该文件包含应用程序使用的所有依赖项的实际版本。我复制了您的代码,并得到一个不同的错误:“在当前范围内,没有为secp256k1::secp256k1
类型找到名为generate_keypair
的方法”。请提供一个包含板条箱版本的文件,以便获得相同的错误。在Cargo.lock文件中搜索-副本描述了一种更自动化的方法来查找此错误。要更新其依赖项,我会要求他们增加版本范围,特别是。他们的代码大概可以支持rand的0.4到0.6版本。