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

时间:2016-04-05 09:06:52

标签: rust docopt

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

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来处理它吗?

1 个答案:

答案 0 :(得分:2)

如果您的结构中有cmd_start: boolcmd_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