use crate::formschema::types::FumeFieldSchema;
use crate::formschema::{FumeBaseSchema, FumeFieldTypes};
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
fn value_default() -> FumeFieldTypes {
FumeFieldTypes::Object
}
#[derive(PartialEq, Eq, Serialize, Deserialize, Clone, Debug, Default)]
pub struct FumeObjectSchema {
#[serde(flatten)]
pub base: FumeBaseSchema<HashMap<String, serde_json::Value>>,
#[serde(alias = "type", rename(serialize = "type"), default = "value_default")]
pub _type: FumeFieldTypes,
#[serde(rename = "flat")]
pub flat: Option<bool>,
#[serde(rename = "fields")]
pub fields: Vec<FumeFieldSchema>,
}
impl std::ops::Deref for FumeObjectSchema {
type Target = FumeBaseSchema<HashMap<String, serde_json::Value>>;
fn deref(&self) -> &Self::Target {
&self.base
}
}
pub type FormSchema = FumeObjectSchema;