mod api_cmd;
mod archive_cmd;
mod backup_cmd;
mod benchmark_cmd;
mod car_cmd;
mod db_cmd;
mod fetch_params_cmd;
mod net_cmd;
mod shed_cmd;
mod snapshot_cmd;
mod state_migration_cmd;
use crate::cli_shared::cli::HELP_MESSAGE;
use crate::cli_shared::cli::*;
use crate::utils::version::FOREST_VERSION_STRING;
use clap::Parser;
#[derive(Parser)]
#[command(name = env!("CARGO_PKG_NAME"), author = env!("CARGO_PKG_AUTHORS"), version = FOREST_VERSION_STRING.as_str(), about = env!("CARGO_PKG_DESCRIPTION"))]
#[command(help_template(HELP_MESSAGE))]
pub struct Cli {
#[command(subcommand)]
pub cmd: Subcommand,
}
#[derive(clap::Subcommand)]
#[allow(clippy::large_enum_variant)]
pub enum Subcommand {
#[command(subcommand)]
Backup(backup_cmd::BackupCommands),
#[command(subcommand)]
Benchmark(benchmark_cmd::BenchmarkCommands),
#[command(subcommand)]
StateMigration(state_migration_cmd::StateMigrationCommands),
#[command(subcommand)]
Snapshot(snapshot_cmd::SnapshotCommands),
#[command(name = "fetch-params")]
Fetch(fetch_params_cmd::FetchCommands),
#[command(subcommand)]
Archive(archive_cmd::ArchiveCommands),
#[command(subcommand)]
DB(db_cmd::DBCommands),
#[command(subcommand)]
Car(car_cmd::CarCommands),
#[command(subcommand)]
Api(api_cmd::ApiCommands),
#[command(subcommand)]
Net(net_cmd::NetCommands),
#[command(subcommand)]
Shed(shed_cmd::ShedCommands),
}