#![cfg_attr(not(test), warn(clippy::pedantic))] #![cfg_attr(not(test), warn(clippy::expect_used))] use anyhow::Result; use clap::{Parser, Subcommand}; mod sub_commands; #[derive(Parser)] #[command(author, version, about, long_about = None)] #[command(propagate_version = true)] pub struct Cli { #[command(subcommand)] command: Commands, } #[derive(Subcommand)] enum Commands { /// replace with an actual subcommand Placeholder(sub_commands::placeholder::SubCommandArgs), } #[tokio::main] async fn main() -> Result<()> { let cli = Cli::parse(); match &cli.command { Commands::Placeholder(args) => { futures::executor::block_on(sub_commands::placeholder::launch(&cli, args)) } } }