use clap::Subcommand;
use super::{alternativeme, clob, clob_ws, cmc, coingecko, data, gamma, rtds};
#[allow(clippy::large_enum_variant)]
#[derive(Subcommand)]
pub enum DsCommands {
#[command(subcommand)]
Clob(clob::ClobCommands),
#[command(subcommand)]
ClobWs(clob_ws::ClobWsCommands),
#[command(subcommand)]
Data(data::DataCommands),
#[command(subcommand)]
Gamma(gamma::GammaCommands),
#[command(subcommand)]
Rtds(rtds::RtdsCommands),
#[command(subcommand)]
Cmc(cmc::CmcCommands),
#[command(subcommand)]
Cg(coingecko::CgCommands),
#[command(subcommand)]
Alt(alternativeme::AlternativeMeCommands),
}
pub async fn handle(command: &DsCommands) -> anyhow::Result<()> {
match command {
DsCommands::Clob(cmd) => clob::handle(cmd).await,
DsCommands::ClobWs(cmd) => clob_ws::handle(cmd).await,
DsCommands::Data(cmd) => data::handle(cmd).await,
DsCommands::Gamma(cmd) => gamma::handle(cmd).await,
DsCommands::Rtds(cmd) => rtds::handle(cmd).await,
DsCommands::Cmc(cmd) => cmc::handle(cmd).await,
DsCommands::Cg(cmd) => coingecko::handle(cmd).await,
DsCommands::Alt(cmd) => alternativeme::handle(cmd).await,
}
}