use strum::{EnumDiscriminants, EnumIter, EnumMessage};
mod pledge_proposal;
mod unpledge_proposal;
mod view_pledge;
#[derive(Debug, Clone, interactive_clap::InteractiveClap)]
#[interactive_clap(context = crate::GlobalContext)]
pub struct Pledging {
#[interactive_clap(subcommand)]
pledging_command: PledgingCommand,
}
#[derive(Debug, EnumDiscriminants, Clone, interactive_clap::InteractiveClap)]
#[interactive_clap(context = crate::GlobalContext)]
#[strum_discriminants(derive(EnumMessage, EnumIter))]
pub enum PledgingCommand {
#[strum_discriminants(strum(message = "view-pledge - View validator pledge"))]
ViewPledge(self::view_pledge::ViewPledge),
#[strum_discriminants(strum(
message = "pledge-proposal - To pledge unc directly without a pledging pool"
))]
PledgeProposal(self::pledge_proposal::PledgeProposal),
}