1

我正在编写一个命令行实用程序,它有几个子命令:

Usage: 
    example start [-w | --write] [-F | --force] <name>
    example stop [-F | --force] <name>
    example restart [-F | --force] <name>
    example status [-F | --force] <name>
    example ls
    example install <name>
    example uninstall <name>
    example show
    example edit <name>
    example (-h | --help)

Options:
    -h --help     Show help message
    -F --force    Force start/stop/restart
    -w --write    TODO

这完美地解析了参数,但它不允许我检索使用的子命令。

另一种方法是使用example <command> <name> [<args>...],但这不再为您提供 docopt 的功能,您可以再次使用不同的方法对其进行解析...

知道如何在 Rust 中设置 docopt 来处理这个问题吗?

4

1 回答 1

3

如果您的结构中有cmd_start: bool,cmd_stop: bool等,Docopt 会将使用的设置为true.

更多信息在这里:https ://github.com/docopt/docopt.rs#struct-field-name-mapping ,复制如下:

结构字段名称映射

结构映射的字段名称如下:

-g            => flag_g
--group       => flag_group
--group <arg> => flag_group
FILE          => arg_FILE
<file>        => arg_file
build         => cmd_build
于 2016-04-05T14:51:11.137 回答