On Monday, 22 June 2015 at 19:09:40 UTC, weaselcat wrote:
I never seem to use them for anything, has anyone else done anything interesting with them?

I'm writing a program that can accept subcommands via either the command line (ex. `prog mycmd 1 2`) or via a shell. I represent each command as a function, use UDAs to store the help text and if they can be ran from the command line or shell. The command list, full help text, and command dispatcher is generated at compile time via templates, CTFE, and static foreach.

An example command:

@("<nanoseconds>") // arguments
@("Sets the amount of time to increment the clock on each frame.") // description
@ShellOnly // can't be ran from command line
int cmd_set_time_per_frame(string[] args) {
    // ...
}

Reply via email to