use crate::domain::gate_id::GateId;
#[derive(Debug, clap::Args)]
pub struct GateArgs {
#[arg(value_enum, required_unless_present_any = ["list", "explain"])]
pub id: Option<GateId>,
#[arg(conflicts_with = "explain")]
pub files: Vec<String>,
#[arg(long, conflicts_with = "id")]
pub list: bool,
#[arg(long, value_name = "PATH", conflicts_with = "list")]
pub explain: Option<String>,
#[arg(long, value_name = "GLOB")]
pub include: Vec<String>,
#[arg(long, value_name = "GLOB")]
pub exclude: Vec<String>,
}