use eyre::Result;
mod forget;
mod pins;
#[derive(Debug, usage_rs::Args)]
#[usage(verbatim_doc_comment)]
pub(crate) struct Packslip {
#[usage(subcommand)]
command: Option<Commands>,
}
#[derive(Debug, usage_rs::Subcommands)]
enum Commands {
Forget(forget::PackslipForget),
Pins(pins::PackslipPins),
}
impl Commands {
fn run(self) -> Result<()> {
match self {
Self::Forget(cmd) => cmd.run(),
Self::Pins(cmd) => cmd.run(),
}
}
}
impl Packslip {
pub(crate) async fn run(self) -> Result<()> {
self.command
.unwrap_or(Commands::Pins(pins::PackslipPins::default()))
.run()
}
}