use crate::model::ClauseKind;
use clap::{Subcommand, ValueEnum};
#[derive(Subcommand, Clone, Debug)]
pub(crate) enum NewTarget {
Rfc {
title: String,
#[arg(long)]
id: Option<String>,
},
Clause {
clause_id: String,
title: String,
#[arg(short = 's', long, default_value = "Specification")]
section: String,
#[arg(short = 'k', long, value_enum, default_value = "normative")]
kind: ClauseKind,
},
Adr {
title: String,
},
Work {
title: String,
#[arg(long)]
active: bool,
},
}
#[derive(ValueEnum, Clone, Copy, Debug, PartialEq, Eq)]
pub(crate) enum ListTarget {
Rfc,
Clause,
Adr,
Work,
Guard,
}
#[derive(ValueEnum, Clone, Copy, Debug, Default, PartialEq, Eq)]
pub enum OutputFormat {
#[default]
Table,
Json,
Plain,
}
#[derive(ValueEnum, Clone, Copy, Debug)]
pub(crate) enum RenderTarget {
Rfc,
Adr,
Work,
Changelog,
All,
}
#[derive(ValueEnum, Clone, Copy, Debug)]
pub(crate) enum FinalizeStatus {
Normative,
Deprecated,
}
#[derive(Clone, Debug, Default, ValueEnum)]
pub enum SkillFormat {
#[default]
Claude,
Codex,
}