use clap::{Args, Parser, Subcommand};
use solana_sdk::pubkey::Pubkey;
#[derive(Parser)]
#[clap(author, version, about, long_about = None)]
#[clap(propagate_version = true)]
pub struct CliParser {
#[clap(subcommand)]
pub command: Command,
}
#[derive(Subcommand)]
#[allow(clippy::enum_variant_names)]
pub enum Command {
CreateStorage(CreateStorageSettings),
UpdateStorage(UpdateStorageSettings),
GetStorage(GetStorageSettings),
SpoilStorage(SpoilStorageSettings),
DestroyStorage(DestroyStorageSettings),
}
#[derive(Args)]
pub struct CreateStorageSettings {
#[clap(value_name = "FILE_PATH")]
pub wallet: String,
#[clap(short, long, value_name = "NUMBER")]
#[clap(default_value_t = 0)]
pub value: i32,
}
#[derive(Args)]
pub struct UpdateStorageSettings {
#[clap(value_name = "FILE_PATH")]
pub wallet: String,
#[clap(short, long, value_name = "NUMBER")]
pub value: i32,
}
#[derive(Args)]
pub struct GetStorageSettings {
#[clap(value_name = "PUBKEY")]
pub owner: Pubkey,
}
#[derive(Args)]
pub struct SpoilStorageSettings {
#[clap(value_name = "FILE_PATH")]
pub wallet: String,
}
#[derive(Args)]
pub struct DestroyStorageSettings {
#[clap(value_name = "FILE_PATH")]
pub wallet: String,
}