Rust 调用Clap';让我们找火柴吧?

Rust 调用Clap';让我们找火柴吧?,rust,clap,Rust,Clap,我的问题和你的一样,但这个问题提出的解决方案对我来说还不够好 .setting(AppSettings::ArgRequiredElseHelp)如果没有提供参数,则停止程序,即使没有提供参数,我也需要程序继续执行。我需要另外显示帮助。您可以先编写字符串 use clap::{App, SubCommand}; use std::str; fn main() { let mut app = App::new("myapp") .version("0.0.1")

我的问题和你的一样,但这个问题提出的解决方案对我来说还不够好


.setting(AppSettings::ArgRequiredElseHelp)
如果没有提供参数,则停止程序,即使没有提供参数,我也需要程序继续执行。我需要另外显示帮助。

您可以先编写字符串

use clap::{App, SubCommand};

use std::str;

fn main() {
    let mut app = App::new("myapp")
        .version("0.0.1")
        .about("My first CLI APP")
        .subcommand(SubCommand::with_name("ls").about("List anything"));

    let mut help = Vec::new();
    app.write_long_help(&mut help).unwrap();

    let _ = app.get_matches();

    println!("{}", str::from_utf8(&help).unwrap());
}
或者你可以用


你可以先写字符串

use clap::{App, SubCommand};

use std::str;

fn main() {
    let mut app = App::new("myapp")
        .version("0.0.1")
        .about("My first CLI APP")
        .subcommand(SubCommand::with_name("ls").about("List anything"));

    let mut help = Vec::new();
    app.write_long_help(&mut help).unwrap();

    let _ = app.get_matches();

    println!("{}", str::from_utf8(&help).unwrap());
}
或者你可以用


愚蠢的问题,但为什么?所以你只想/?@Stargateur我需要运行迁移,即使程序没有执行(否则测试不会运行)。如果你有更好的主意,请告诉我。愚蠢的问题,但为什么?所以你只需要/?@Stargateur,即使程序没有执行,我也需要运行迁移(否则测试将无法运行)。如果你有更好的主意,请告诉我。我最终重写了我的程序,所以现在我正在使用ArgsRequiredElseHelp。我希望这个答案对其他人有用。@OmarAbid我的答案对你的情况来说还不够吗?“我明白了。”斯特拉加图尔你的回答足够了,事实上这是一个有效的解决方案。然而,再看一遍代码,我决定我可以做一个更好的架构,我最终编写了它,使它遵循Clap,而不是试图解决它。我最终重写了我的程序,所以现在我使用ArgsRequiredElseHelp。我希望这个答案对其他人有用。@OmarAbid我的答案对你的情况来说还不够吗?“我明白了。”斯特拉加图尔你的回答足够了,事实上这是一个有效的解决方案。然而,再看一遍代码,我决定我可以做一个更好的架构,我最终编写了它,使它遵循Clap,而不是试图解决它。