hello_generated/
hello-generated.rs

1mod flags {
2    #![allow(unused)]
3
4    xflags::xflags! {
5        src "./examples/hello-generated.rs"
6
7        /// Prints a greeting.
8        cmd hello {
9            /// Whom to greet.
10            required name: String
11
12            /// Use non-ascii symbols in the output.
13            optional -e, --emoji
14        }
15    }
16
17    // generated start
18    // The following code is generated by `xflags` macro.
19    // Run `env UPDATE_XFLAGS=1 cargo build` to regenerate.
20    #[derive(Debug)]
21    pub struct Hello {
22        pub name: String,
23
24        pub emoji: bool,
25    }
26
27    impl Hello {
28        #[allow(dead_code)]
29        pub fn from_env() -> xflags::Result<Self> {
30            Self::from_env_()
31        }
32
33        #[allow(dead_code)]
34        pub fn from_vec(args: Vec<std::ffi::OsString>) -> xflags::Result<Self> {
35            Self::from_vec_(args)
36        }
37    }
38    // generated end
39}
40
41fn main() {
42    match flags::Hello::from_env() {
43        Ok(flags) => {
44            let bang = if flags.emoji { "❣️" } else { "!" };
45            println!("Hello {}{}", flags.name, bang);
46        }
47        Err(err) => err.exit(),
48    }
49}