如何在不使用命令行的情况下使用具有 CLAP 的 Rust crate 的功能?
How do I use the functionality of a Rust crate that has CLAP without using the command line?
这里是新手,如果这是一个愚蠢的问题,我们深表歉意。
我想在我的代码中使用 wagyu crate 的功能。这个 crate 具有命令行功能,所以我可以 运行 从命令行编写代码,但我似乎无法从我自己的代码中引用它。
我尝试了 2 个选项:
- 复制 'clap' 调用 crate 时期望的输入(带参数的结构)
- 从 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 文件中的代码知道有一个 public 函数称为 'from_mnemonic'(在第 88 行定义)。
有谁知道为什么我不能调用这个函数?或者,是否有一种简单的方法可以在不使用命令行界面的情况下使用具有 clap 依赖性的板条箱?
非常感谢。
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
不是 pub,所以你不能简单地这样做。您必须从 github 下载 wagyu
的源代码并对其进行编辑,这样 wagyu::cli::ethereum::EthereumWallet
就会变成 public。
我认为你必须做的唯一改变就是替换这个(在 ethereum.rs
中):
struct EthereumWallet {
有了这个:
pub struct EthereumWallet {
这里是新手,如果这是一个愚蠢的问题,我们深表歉意。
我想在我的代码中使用 wagyu crate 的功能。这个 crate 具有命令行功能,所以我可以 运行 从命令行编写代码,但我似乎无法从我自己的代码中引用它。
我尝试了 2 个选项:
- 复制 'clap' 调用 crate 时期望的输入(带参数的结构)
- 从 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 文件中的代码知道有一个 public 函数称为 'from_mnemonic'(在第 88 行定义)。
有谁知道为什么我不能调用这个函数?或者,是否有一种简单的方法可以在不使用命令行界面的情况下使用具有 clap 依赖性的板条箱?
非常感谢。
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
不是 pub,所以你不能简单地这样做。您必须从 github 下载 wagyu
的源代码并对其进行编辑,这样 wagyu::cli::ethereum::EthereumWallet
就会变成 public。
我认为你必须做的唯一改变就是替换这个(在 ethereum.rs
中):
struct EthereumWallet {
有了这个:
pub struct EthereumWallet {