Hey folks! I'm about to start writing a rather large and complex CLI using clap which I'd like to remain nicely maintainable and such. It's going to have on the order of dozens of subcommands, each potentially with their own subcommands and so on, and I'd like to be able to splice out subcommands and compile subcommands in/out depending on compile-time feature flags.
My question is: what representation of the clap interface should I be using? YAML, macro, or the straightforward Rust builder representation?
I was thinking of basically creating a parallel directory structure in my project, cli, with a cli.yml file, and then every YAML file in cli being a subcommand (sometimes with directories of their own, containing subcommands.)
Does anyone have a nice strategy for organizing this sort of thing?