use crate::args::CommandTrait;
use clap::Args;
use onerom_cli::plugin::PluginType;
fn parse_plugin_type(s: &str) -> Result<PluginType, String> {
PluginType::try_from_str(s)
.ok_or_else(|| format!("invalid plugin type '{s}': expected 'system' or 'user'"))
}
#[derive(Debug, Args)]
pub struct PluginArgs {
#[arg(long, short = 'a')]
pub all_versions: bool,
#[arg(long, short, value_name = "TYPE", value_parser = parse_plugin_type)]
pub r#type: Option<PluginType>,
#[arg(long, value_name = "VERSION")]
pub fw_version: Option<String>,
}
impl CommandTrait for PluginArgs {
fn requires_device(&self) -> bool {
false
}
}