use clap::Parser;
use voa_core::identifiers::{Context, Os, Purpose, Technology};
use crate::cli::OutputFormat;
#[derive(Debug, Parser)]
pub struct ListCommand {
#[arg(env = "VOA_LIST_OS", help = "The OS to search for.")]
pub os: Os,
#[arg(env = "VOA_LIST_PURPOSE", help = "The purpose to search for.")]
pub purpose: Purpose,
#[arg(
env = "VOA_LIST_CONTEXT",
help = "The context to search for.",
long,
long_help = r#"The context to search for.
If not specified, defaults to "default"."#
)]
pub context: Option<Context>,
#[arg(
env = "VOA_LIST_TECHNOLOGY",
help = "The technology to search for.",
long,
long_help = r#"The technology to search for.
Currently only "openpgp" is supported.
If not specified, defaults to "openpgp"."#,
short
)]
pub technology: Option<Technology>,
#[arg(
env = "VOA_LIST_OUTPUT_FORMAT",
help = "The output format to use.",
long,
short,
default_value_t = OutputFormat::default()
)]
pub output_format: OutputFormat,
}