use crate::args::CommandTrait;
use clap::{Args, Subcommand};
use enum_dispatch::enum_dispatch;
#[derive(Debug, Args)]
pub struct ImageArgs {
#[command(subcommand)]
pub command: ImageCommands,
}
impl CommandTrait for ImageArgs {
fn requires_device(&self) -> bool {
self.command.requires_device()
}
}
#[enum_dispatch(CommandTrait)]
#[derive(Debug, Subcommand)]
pub enum ImageCommands {
SwapBytes(ImageSwapBytesArgs),
}
#[derive(Debug, Args)]
pub struct ImageSwapBytesArgs {
#[arg(long, short, visible_alias = "in", value_name = "FILE")]
pub input: String,
#[arg(long, short, visible_alias = "out", value_name = "FILE")]
pub output: String,
}
impl CommandTrait for ImageSwapBytesArgs {
fn requires_device(&self) -> bool {
false
}
}