use clap::{ArgAction, Args, Subcommand};
#[derive(Debug, Args)]
pub(crate) struct ContractsArgs {
#[command(subcommand)]
pub command: ContractsCommand,
}
#[derive(Debug, Subcommand)]
pub(crate) enum ContractsCommand {
Builtins(ContractsOutputArgs),
HostCapabilities(ContractsHostCapabilitiesArgs),
Bundle(ContractsBundleArgs),
}
#[derive(Debug, Args)]
pub(crate) struct ContractsOutputArgs {
#[arg(long, default_value_t = true, action = ArgAction::Set)]
pub pretty: bool,
}
#[derive(Debug, Args)]
pub(crate) struct ContractsHostCapabilitiesArgs {
#[arg(long = "host-capabilities")]
pub host_capabilities: Option<String>,
#[arg(long, default_value_t = true, action = ArgAction::Set)]
pub pretty: bool,
}
#[derive(Debug, Args)]
pub(crate) struct ContractsBundleArgs {
#[arg(long = "host-capabilities")]
pub host_capabilities: Option<String>,
#[arg(long = "bundle-root")]
pub bundle_root: Option<String>,
#[arg(long)]
pub verify: bool,
#[arg(long, default_value_t = true, action = ArgAction::Set)]
pub pretty: bool,
#[arg(required = true)]
pub targets: Vec<String>,
}