You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
502 B
27 lines
502 B
7 months ago
|
//! How to extract subcommands' args into external structs.
|
||
|
|
||
|
use structopt::StructOpt;
|
||
|
|
||
|
#[derive(Debug, StructOpt)]
|
||
|
pub struct Foo {
|
||
|
pub bar: Option<String>,
|
||
|
}
|
||
|
|
||
|
#[derive(Debug, StructOpt)]
|
||
|
pub enum Command {
|
||
|
#[structopt(name = "foo")]
|
||
|
Foo(Foo),
|
||
|
}
|
||
|
|
||
|
#[derive(Debug, StructOpt)]
|
||
|
#[structopt(name = "classify")]
|
||
|
pub struct ApplicationArguments {
|
||
|
#[structopt(subcommand)]
|
||
|
pub command: Command,
|
||
|
}
|
||
|
|
||
|
fn main() {
|
||
|
let opt = ApplicationArguments::from_args();
|
||
|
println!("{:?}", opt);
|
||
|
}
|