wakflo_form/formschema/
select_type.rs1use crate::formschema::{FumeBaseSchema, FumeFieldTypes, FumeSchemaEnum, FumeSchemaSelectionMode};
2use serde::{Deserialize, Serialize};
3
4fn value_default_select() -> FumeFieldTypes {
5 FumeFieldTypes::Select
6}
7
8#[derive(PartialEq, Eq, Serialize, Deserialize, Clone, Debug, Default)]
10pub struct FumeSelectSchema {
11 #[serde(flatten)]
12 pub base: FumeBaseSchema<serde_json::Value>,
13 #[serde(
14 alias = "type",
15 rename(serialize = "type"),
16 default = "value_default_select"
17 )]
18 pub _type: FumeFieldTypes,
19 #[serde(rename = "selectionMode")]
20 pub selection_mode: Option<FumeSchemaSelectionMode>,
21 #[serde(alias = "enum", rename(serialize = "enum"))]
22 pub _enum: Vec<FumeSchemaEnum<String>>,
23}
24
25impl std::ops::Deref for FumeSelectSchema {
26 type Target = FumeBaseSchema<serde_json::Value>;
27 fn deref(&self) -> &Self::Target {
28 &self.base
29 }
30}
31
32fn value_default_drop() -> FumeFieldTypes {
33 FumeFieldTypes::Dropdown
34}
35
36#[derive(PartialEq, Eq, Serialize, Deserialize, Clone, Debug, Default)]
38pub struct FumeDropdownSchema {
39 #[serde(flatten)]
40 pub base: FumeBaseSchema<serde_json::Value>,
41 #[serde(
42 alias = "type",
43 rename(serialize = "type"),
44 default = "value_default_drop"
45 )]
46 pub _type: FumeFieldTypes,
47 #[serde(rename = "selectionMode")]
48 pub selection_mode: Option<FumeSchemaSelectionMode>,
49 #[serde(alias = "enum", rename(serialize = "enum"))]
50 pub _enum: Vec<FumeSchemaEnum<String>>,
51}
52
53impl std::ops::Deref for FumeDropdownSchema {
54 type Target = FumeBaseSchema<serde_json::Value>;
55 fn deref(&self) -> &Self::Target {
56 &self.base
57 }
58}