heddle_cli_args/cli/cli_args/
commands_discuss.rs1use clap::{Args, Subcommand};
5
6#[derive(Clone, Debug, Subcommand)]
7pub enum DiscussCommands {
8 Open(DiscussOpenArgs),
10 Append(DiscussAppendArgs),
12 Resolve(DiscussResolveArgs),
14 Reopen(DiscussReopenArgs),
16 List(DiscussListArgs),
18 Show(DiscussShowArgs),
20}
21
22#[derive(Clone, Debug, Args)]
23pub struct DiscussOpenArgs {
24 pub file: String,
26 pub symbol: String,
28 pub body: String,
30 #[arg(long)]
32 pub title: Option<String>,
33 #[arg(long)]
35 pub state: Option<String>,
36 #[arg(long)]
38 pub visibility: Option<String>,
39}
40
41#[derive(Clone, Debug, Args)]
42pub struct DiscussAppendArgs {
43 pub discussion_id: String,
44 pub body: String,
45}
46
47#[derive(Clone, Debug, Args)]
48pub struct DiscussResolveArgs {
49 pub discussion_id: String,
50 #[arg(long, value_enum)]
52 pub mode: ResolveModeArg,
53 #[arg(long)]
55 pub state: Option<String>,
56 #[arg(long)]
58 pub reason: Option<String>,
59}
60
61#[derive(Clone, Debug, clap::ValueEnum)]
62pub enum ResolveModeArg {
63 ByEdit,
64 Dismiss,
65}
66
67#[derive(Clone, Debug, Args)]
68pub struct DiscussReopenArgs {
69 pub discussion_id: String,
70 #[arg(long)]
72 pub reason: String,
73}
74
75#[derive(Clone, Debug, Args)]
76pub struct DiscussListArgs {
77 #[arg(long)]
79 pub state: Option<String>,
80 #[arg(long)]
82 pub file: Option<String>,
83 #[arg(long)]
85 pub symbol: Option<String>,
86 #[arg(long, default_value = "open")]
88 pub status: String,
89}
90
91#[derive(Clone, Debug, Args)]
92pub struct DiscussShowArgs {
93 pub discussion_id: String,
94}