use clap::Parser;
#[clappen::clappen(export = nested)]
mod nested {
#[derive(clap::Args, Debug, Clone)]
pub struct Remote {
#[arg(env, long)]
id: String,
}
}
nested!("test"); nested!("test1");
#[derive(clap::Parser, Debug, Clone)]
#[command(version)]
pub struct ServerOptions {
#[arg(env, long)]
url: String,
#[arg(env, long)]
say_hello: Option<bool>,
#[command(flatten)]
nested: TestRemote,
#[command(flatten)]
nested1: Test1Remote,
}
#[allow(dead_code)]
impl ServerOptions {
fn a_function(&self) -> String {
format!("url: {}, say_hello: {:?}", self.url, self.say_hello)
}
fn another_function(&self) {}
}
#[allow(dead_code)]
impl ServerOptions {
fn a_third_function_in_second_impl_block(&self) {}
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
let _ = ServerOptions::parse();
Ok(())
}