1use std::path::PathBuf;
4
5use clap::{Args, Subcommand};
6
7#[derive(Args)]
8pub struct QuoteRightsArgs {
9 #[arg(long)]
11 pub(crate) refresh: bool,
12}
13
14#[derive(Args)]
15pub struct QuoteCapabilityArgs {
16 #[arg(index = 1, value_name = "SYMBOL")]
18 pub(crate) symbol_positional: Option<String>,
19
20 #[arg(
22 long = "symbol",
23 visible_aliases = ["code", "stock"],
24 conflicts_with = "symbol_positional",
25 value_name = "SYMBOL"
26 )]
27 pub(crate) symbol_arg: Option<String>,
28}
29
30#[derive(Args)]
31pub struct TickerStatisticArgs {
32 #[arg(index = 1, value_name = "SYMBOL")]
34 pub(crate) symbol_pos: Option<String>,
35
36 #[arg(long = "symbol", conflicts_with = "symbol_pos")]
38 pub(crate) symbol: Option<String>,
39
40 #[arg(long)]
42 pub(crate) ticker_type: Option<i32>,
43
44 #[arg(long)]
46 pub(crate) stat_type: Option<u32>,
47}
48
49#[derive(Args)]
50pub struct TickerStatisticDetailArgs {
51 #[arg(index = 1, value_name = "SYMBOL")]
53 pub(crate) symbol_pos: Option<String>,
54
55 #[arg(long = "symbol", conflicts_with = "symbol_pos")]
57 pub(crate) symbol: Option<String>,
58
59 #[arg(long)]
61 pub(crate) ticker_type: Option<i32>,
62
63 #[arg(long)]
65 pub(crate) ticker_time: Option<u64>,
66
67 #[arg(long)]
69 pub(crate) select_num: Option<u32>,
70
71 #[arg(long)]
73 pub(crate) data_from: Option<u32>,
74
75 #[arg(long)]
77 pub(crate) data_max_count: Option<u32>,
78
79 #[arg(long)]
81 pub(crate) stat_type: Option<u32>,
82}
83
84#[derive(Args)]
85pub struct QuerySubscriptionArgs {
86 #[arg(long)]
88 pub(crate) all_conn: bool,
89}
90
91#[derive(Args)]
92pub struct UnsubscribeArgs {
93 #[arg(long, default_value = "")]
95 pub(crate) symbols: String,
96
97 #[arg(long, default_value = "")]
103 pub(crate) sub_types: String,
104
105 #[arg(long)]
107 pub(crate) all: bool,
108}
109
110#[derive(Args)]
111pub struct HistoryKlQuotaArgs {
112 #[arg(long)]
114 pub(crate) detail: bool,
115}
116
117#[derive(Args)]
118pub struct DaemonStatusArgs {
119 #[arg(long)]
121 pub(crate) rest_url: Option<String>,
122
123 #[arg(long, conflicts_with = "rest_url")]
125 pub(crate) rest_port: Option<u16>,
126
127 #[arg(long)]
129 pub(crate) api_key: Option<String>,
130}
131
132#[derive(Args)]
133pub struct PushSubscriberInfoArgs {
134 #[arg(long)]
136 pub(crate) rest_url: Option<String>,
137
138 #[arg(long, conflicts_with = "rest_url")]
140 pub(crate) rest_port: Option<u16>,
141
142 #[arg(long)]
144 pub(crate) api_key: Option<String>,
145}
146
147#[derive(Args)]
148pub struct DoctorArgs {
149 #[arg(long)]
151 pub(crate) rest_url: Option<String>,
152
153 #[arg(long, conflicts_with = "rest_url")]
155 pub(crate) rest_port: Option<u16>,
156
157 #[arg(long)]
159 pub(crate) api_key: Option<String>,
160
161 #[arg(long)]
164 pub(crate) symbol: Option<String>,
165
166 #[arg(long, value_name = "DIR")]
168 pub(crate) bundle: Option<PathBuf>,
169
170 #[arg(long)]
172 pub(crate) no_update_check: bool,
173
174 #[arg(long)]
176 pub(crate) update_url: Option<String>,
177
178 #[arg(long, default_value_t = 800)]
180 pub(crate) update_timeout_ms: u64,
181}
182
183#[derive(Args)]
184pub struct VersionArgs {
185 #[arg(long)]
187 pub(crate) check: bool,
188
189 #[arg(long)]
191 pub(crate) url: Option<String>,
192
193 #[arg(long, default_value_t = 800)]
195 pub(crate) timeout_ms: u64,
196}
197
198#[derive(Args)]
199pub struct LanguagePackArgs {
200 #[command(subcommand)]
201 pub(crate) command: LanguagePackCommand,
202}
203
204#[derive(Subcommand)]
205pub enum LanguagePackCommand {
206 Status {
208 #[arg(long, value_name = "DIR")]
210 cache_dir: Option<PathBuf>,
211 },
212 Import {
214 #[arg(long, value_name = "DIR")]
216 dir: PathBuf,
217
218 #[arg(long, value_name = "DIR")]
220 cache_dir: Option<PathBuf>,
221
222 #[arg(long, default_value = "manual-import")]
224 pack_version: String,
225
226 #[arg(long, default_value = "manual-import")]
228 source: String,
229
230 #[arg(long)]
232 profile: Option<String>,
233 },
234 Update {
236 #[arg(long, value_name = "URL")]
238 endpoint: String,
239
240 #[arg(long, value_name = "DIR")]
242 cache_dir: Option<PathBuf>,
243
244 #[arg(long, default_value_t = 3000)]
246 timeout_ms: u64,
247
248 #[arg(long)]
250 lang: Option<String>,
251 },
252}
253
254#[derive(Args)]
255pub struct StaticStatusArgs {
256 #[arg(long)]
258 pub(crate) rest_url: Option<String>,
259
260 #[arg(long, conflicts_with = "rest_url")]
262 pub(crate) rest_port: Option<u16>,
263
264 #[arg(long)]
266 pub(crate) api_key: Option<String>,
267}
268
269#[derive(Args)]
270pub struct StaticWarmupArgs {
271 #[arg(required = true)]
273 pub(crate) symbols: Vec<String>,
274}
275
276#[derive(Args)]
277pub struct SurfaceArgs {
278 #[arg(long)]
280 pub(crate) gaps: bool,
281
282 #[arg(long, value_name = "ENDPOINT")]
284 pub(crate) checklist: Option<String>,
285}
286
287#[derive(Args)]
288pub struct DaemonShutdownArgs {
289 #[arg(long)]
291 pub(crate) rest_url: Option<String>,
292
293 #[arg(long, conflicts_with = "rest_url")]
296 pub(crate) rest_port: Option<u16>,
297
298 #[arg(long)]
300 pub(crate) api_key: Option<String>,
301}
302
303#[derive(Args)]
304pub struct DaemonReloadArgs {
305 #[arg(long)]
307 pub(crate) rest_url: Option<String>,
308
309 #[arg(long, conflicts_with = "rest_url")]
312 pub(crate) rest_port: Option<u16>,
313
314 #[arg(long)]
316 pub(crate) api_key: Option<String>,
317}