如何检索在 Rust 中使用 docopt 时使用的子命令?

How do I retrieve the subcommand used when using docopt in Rust?

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

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 来处理这个问题吗?

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

此处有更多信息:https://github.com/docopt/docopt.rs#struct-field-name-mapping,复制如下以供后代使用:

Struct field name mapping

The field names of the struct map like this:

-g            => flag_g
--group       => flag_group
--group <arg> => flag_group
FILE          => arg_FILE
<file>        => arg_file
build         => cmd_build