use clap::{Args, Parser, Subcommand};
#[derive(Parser, Debug)]
#[command(version, long_about = None)]
#[command(propagate_version = true)]
#[clap(
name = "lsystem",
about="Create SVGs from L-Systems. \nSee https://theriver.github.io/rusty-systems/ for more"
)]
pub struct Cli {
#[arg(short, long, global = true)]
pub verbose: bool,
#[command(subcommand)]
pub command: Command
}
#[derive(Debug, Args)]
pub struct DeriveArgs {
pub file: Box<std::path::Path>,
#[arg(short, long, default_value = "out.svg")]
pub output: Box<std::path::Path>,
#[arg(long, default_value = "500")]
pub width: usize,
#[arg(long, default_value = "500")]
pub height: usize
}
#[derive(Debug, Subcommand)]
pub enum Command {
Derive(DeriveArgs),
Describe,
}