wakflo_form/formschema/
struct_type.rs1use crate::formschema::types::FumeFieldSchema;
2use crate::formschema::{FumeBaseSchema, FumeFieldTypes};
3use serde::{Deserialize, Serialize};
4use std::collections::HashMap;
5
6fn value_default() -> FumeFieldTypes {
7 FumeFieldTypes::Object
8}
9
10#[derive(PartialEq, Eq, Serialize, Deserialize, Clone, Debug, Default)]
12pub struct FumeObjectSchema {
13 #[serde(flatten)]
14 pub base: FumeBaseSchema<HashMap<String, serde_json::Value>>,
15 #[serde(alias = "type", rename(serialize = "type"), default = "value_default")]
16 pub _type: FumeFieldTypes,
17 #[serde(rename = "flat")]
18 pub flat: Option<bool>,
19 #[serde(rename = "fields")]
20 pub fields: Vec<FumeFieldSchema>,
21}
22
23impl std::ops::Deref for FumeObjectSchema {
24 type Target = FumeBaseSchema<HashMap<String, serde_json::Value>>;
25 fn deref(&self) -> &Self::Target {
26 &self.base
27 }
28}
29
30pub type FormSchema = FumeObjectSchema;