mcai_models/common/
start_parameter_type.rs

1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4use crate::ListItem;
5
6#[derive(Clone, Debug, Deserialize, JsonSchema, PartialEq, Serialize)]
7#[serde(tag = "type", rename_all = "snake_case", rename = "type")]
8pub enum StartParameterType {
9  File {
10    #[serde(default, skip_serializing_if = "Option::is_none")]
11    default: Option<String>,
12    #[serde(default, skip_serializing_if = "Option::is_none")]
13    value: Option<String>,
14  },
15  Choice {
16    #[serde(default, skip_serializing_if = "Option::is_none")]
17    default: Option<String>,
18    #[serde(default, skip_serializing_if = "Option::is_none")]
19    value: Option<String>,
20    #[serde(default, skip_serializing_if = "Vec::is_empty")]
21    items: Vec<ListItem>,
22  },
23  String {
24    #[serde(default, skip_serializing_if = "Option::is_none")]
25    default: Option<String>,
26    #[serde(default, skip_serializing_if = "Option::is_none")]
27    value: Option<String>,
28  },
29  Number {
30    #[serde(default, skip_serializing_if = "Option::is_none")]
31    default: Option<f64>,
32    #[serde(default, skip_serializing_if = "Option::is_none")]
33    value: Option<f64>,
34  },
35}