crud_api_endpoint/
input.rs1use crate::ApiInputConfig;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct ApiInputSerde {
9 pub ident: String,
10 pub data: DataSerde,
11 pub no_input_file: bool,
12 pub heading: Option<String>,
13 pub prefix: Option<String>,
14 pub config: Vec<ApiInputConfig>,
15}
16
17#[derive(Debug, Clone, Serialize, Deserialize)]
18pub enum DataSerde {
19 Enum(Vec<ApiInputVariantSerde>),
20 Struct(Vec<ApiInputFieldSerde>),
21}
22
23#[derive(Debug, Clone, Serialize, Deserialize)]
24pub struct ApiInputFieldSerde {
25 pub ident: Option<String>,
26 pub ty: String,
27 pub long: Option<String>,
28 pub short: Option<char>,
29 pub no_short: Option<bool>,
30 pub heading: Option<String>,
31 pub help: Option<String>,
32 pub long_help: Option<String>,
33 pub possible_values: Option<Vec<String>>,
34 pub required: Option<bool>,
35 pub num_args: Option<String>,
36}
37
38#[derive(Debug, Clone, Serialize, Deserialize)]
39pub struct ApiInputVariantSerde {
40 pub ident: String,
41 pub fields: Vec<String>,
42 pub long: Option<String>,
43 pub short: Option<char>,
44 pub no_short: bool,
45 pub no_long: bool,
46 pub heading: Option<String>,
47 pub help: Option<String>,
48 pub long_help: Option<String>,
49}