use anyhow::Result;
use clap::Subcommand;
use pimalaya_cli::printer::Printer;
use crate::mbox::{
client::MboxClient,
message::{
copy::MboxMessageCopyCommand, r#move::MboxMessageMoveCommand, save::MboxMessageSaveCommand,
},
};
#[derive(Debug, Subcommand)]
pub enum MboxMessageCommand {
Save(MboxMessageSaveCommand),
Copy(MboxMessageCopyCommand),
Move(MboxMessageMoveCommand),
}
impl MboxMessageCommand {
pub fn execute(self, printer: &mut impl Printer, client: &mut MboxClient) -> Result<()> {
match self {
Self::Save(cmd) => cmd.execute(printer, client),
Self::Copy(cmd) => cmd.execute(printer, client),
Self::Move(cmd) => cmd.execute(printer, client),
}
}
}