mirror of
https://git.proxmox.com/git/rustc
synced 2025-08-17 20:06:38 +00:00
50 lines
1.1 KiB
Rust
50 lines
1.1 KiB
Rust
mod flags {
|
|
#![allow(unused)]
|
|
|
|
xflags::xflags! {
|
|
src "./examples/hello-generated.rs"
|
|
|
|
/// Prints a greeting.
|
|
cmd hello {
|
|
/// Whom to greet.
|
|
required name: String
|
|
|
|
/// Use non-ascii symbols in the output.
|
|
optional -e, --emoji
|
|
}
|
|
}
|
|
|
|
// generated start
|
|
// The following code is generated by `xflags` macro.
|
|
// Run `env UPDATE_XFLAGS=1 cargo build` to regenerate.
|
|
#[derive(Debug)]
|
|
pub struct Hello {
|
|
pub name: String,
|
|
|
|
pub emoji: bool,
|
|
}
|
|
|
|
impl Hello {
|
|
#[allow(dead_code)]
|
|
pub fn from_env() -> xflags::Result<Self> {
|
|
Self::from_env_()
|
|
}
|
|
|
|
#[allow(dead_code)]
|
|
pub fn from_vec(args: Vec<std::ffi::OsString>) -> xflags::Result<Self> {
|
|
Self::from_vec_(args)
|
|
}
|
|
}
|
|
// generated end
|
|
}
|
|
|
|
fn main() {
|
|
match flags::Hello::from_env() {
|
|
Ok(flags) => {
|
|
let bang = if flags.emoji { "❣️" } else { "!" };
|
|
println!("Hello {}{}", flags.name, bang);
|
|
}
|
|
Err(err) => err.exit(),
|
|
}
|
|
}
|