wakflo_form/formschema/
select_type.rs

1use crate::formschema::{FumeBaseSchema, FumeFieldTypes, FumeSchemaEnum, FumeSchemaSelectionMode};
2use serde::{Deserialize, Serialize};
3
4fn value_default_select() -> FumeFieldTypes {
5    FumeFieldTypes::Select
6}
7
8// Represents a struct type. A struct type contains a fix set of defined properties
9#[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// Represents a struct type. A struct type contains a fix set of defined properties
37#[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}