0

我正在尝试使用Clap. 当我在一个文件中完成所有操作时,它工作正常

// main.rs
use clap::Parser;

#[derive(Parser, Debug)]
struct Args {
    #[clap(long, default_value = "John")]
    name: String,
}

fn main() {
    let args: Args = Args::parse();
    println!("Your name is {}", args.name);
}

但是当我尝试放入Args一个单独的文件时,它会中断

// args.rs
pub use clap::Parser;

#[derive(Parser, Debug)]
pub struct Args {
    #[clap(long, default_value = "John")]
    pub name: String,
}
// main.rs
mod args;
use crate::args::Args;

fn main() {
    let args: Args = Args::parse();
    println!("Your name is {}", args.name);
}

出现以下错误:

let args: Args = Args::parse();
                       ^^^^^ function or associated item not found in `args::Args`

到目前为止,我能够让它发挥作用的唯一方法就是做

use crate::args::{Args, Parser};

这是使它工作的唯一方法吗?有没有办法避免Parser在这里导入?

4

0 回答 0