polyglotlib/jsonb/
area.rsuse crate::jsonb::definition::Definition;
use serde::{Deserialize, Serialize};
use uuid::Uuid;
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct Area {
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<Uuid>,
pub shape: String,
pub coords: Vec<i32>,
pub pre_fill_color: String,
pub fill_color: String,
pub definitions: Vec<Definition>,
}
impl Area {
pub fn normalize_area_list(area_list: Vec<Area>) -> Vec<Area> {
let mut res: Vec<Area> = vec![];
if area_list.clone().is_empty() {
return res;
}
for area in area_list.iter() {
res.push(Area {
id: Option::from(if area.id.is_none() {
Uuid::new_v4()
} else {
area.id.unwrap()
}),
shape: area.shape.clone(),
coords: area.coords.clone(),
pre_fill_color: area.pre_fill_color.clone(),
fill_color: area.fill_color.clone(),
definitions: area.definitions.clone(),
});
}
res
}
}