clap-handler

A command handler works with clap-derive to generating subcommand handlers.

Example

```rust use clap::{Parser, AppSettings}; use clap_handler::{Handler, handler, Context};

[derive(Parser, Handler, Debug, Clone)]

[clap(name = "Your program", author)]

pub struct Arguments { #[clap(subcommand)] subcommand: Subcommand, }

[derive(Parser, Handler, Debug, Clone)]

[handlerinject(addsomething)]

pub enum Subcommand { First(FirstSubcommand), }

impl Subcommand { fn addsomething(&self, ctx: &mut Context) -> anyhow::Result<()> { // insert something // ctx.insert(astruct); Ok(()) } }

[derive(Args, Debug, Clone)]

pub struct FirstSubcommand { arg: String, }

[handler(FirstSubcommand)]

fn handle_first(me: FirstSubcommand) -> anyhow::Result<()> { Ok(()) }

fn main() { let args = Arguments::parse(); log::debug!("{:#?}", args); args.run().await } ```

For more complex examples, see the anni and sswa.

License

Licensed under either of

at your option.