gpt4 book ai didi

function - 如何在不使用命令行的情况下使用具有 CLAP 的 Rust crate 的功能?

转载 作者:行者123 更新时间:2023-12-03 11:46:31 24 4
gpt4 key购买 nike

新手在这里,如果这是一个愚蠢的问题,请道歉。
我想使用 wagyu 的功能在我的代码中装箱。这个 crate 具有命令行功能,所以我可以从命令行运行代码,但我似乎无法从我自己的代码中引用它。
我尝试了 2 个选项:

  • 复制调用 crate(带参数的结构)时预期的输入 'clap'
  • 从 crate 中调用特定函数

  • 对于第 2 项,我尝试过:
    use wagyu::cli::ethereum;

    fn main() {

    let m: String = String::from("sunny story shrimp absent valid today film floor month measure fatigue pet");

    // Returns the address of the corresponding mnemonic.
    let passphrase = "";
    let pathway = "m/44'/60'/0'/0";
    let address = ethereum::from_mnemonic(m, passphrase, pathway);

    println!("phrase: {:?}", address);
    当我尝试构建此代码时,出现以下编译错误:
    error[E0425]: cannot find function `from_mnemonic` in module `ethereum`
    --> src\main.rs:37:29
    |
    37 | let address = ethereum::from_mnemonic::<>(s, passphrase, pathway);
    | ^^^^^^^^^^^^^ not found in `ethereum`
    但我通过查看 ethereum.rs 中的代码知道文件中有一个名为“from_mnemonic”的公共(public)函数(在第 88 行定义)。
    有谁知道为什么我不能调用这个函数?或者,是否有一种简单的方法可以在不使用命令行界面的情况下使用具有 clap 依赖项的 crate?
    非常感谢。

    最佳答案

    from_mnemonic函数应该像这样调用:

    use wagyu::cli::ethereum::EthereumWallet;
    use wagyu_ethereum::network::Mainnet;
    use wagyu_ethereum::wordlist::English;

    fn main() {
    let mnemonic: String = String::from(
    "sunny story shrimp absent valid today. film floor month measure fatigue pet"
    );
    let passphrase = "";
    let path = "m/44'/60'/0'/0";

    let wallet = EthereumWallet::from_mnemonic::<Mainnet, English>(
    mnemonic,
    Some(passphrase),
    path
    ).unwrap()
    }
    但是 wagyu::cli::ethereum::EthereumWallet is not pub 所以你不能简单地这样做。您必须下载 wagyu的源代码来自github并编辑它 wagyu::cli::ethereum::EthereumWallet将公开。
    我认为您必须做出的唯一更改是替换它(在 ethereum.rs 中):
    struct EthereumWallet {
    有了这个:
    pub struct EthereumWallet {

    关于function - 如何在不使用命令行的情况下使用具有 CLAP 的 Rust crate 的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66312577/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com