use strum::{EnumDiscriminants, EnumIter, EnumMessage};
mod delete;
mod deploy;
mod download;
#[derive(Debug, Clone, interactive_clap::InteractiveClap)]
#[interactive_clap(context = crate::GlobalContext)]
pub struct Components {
#[interactive_clap(subcommand)]
command: self::ComponentsCommand,
}
#[derive(Debug, EnumDiscriminants, Clone, interactive_clap::InteractiveClap)]
#[interactive_clap(context = crate::GlobalContext)]
#[strum_discriminants(derive(EnumMessage, EnumIter))]
pub enum ComponentsCommand {
#[strum_discriminants(strum(message = "download - Download components from account"))]
Download(self::download::AccountId),
#[strum_discriminants(strum(
message = "deploy - Deploy components if code has changed"
))]
Deploy(self::deploy::DeployToAccount),
#[strum_discriminants(strum(message = "delete - Delete components from account"))]
Delete(self::delete::DeleteComponentsFromAccount),
}