alizarin_core/graph/
tile.rs1use serde::{Deserialize, Serialize};
4use std::collections::HashMap;
5
6#[derive(Debug, Serialize, Deserialize, Clone)]
8pub struct StaticTile {
9 #[serde(default)]
10 pub data: HashMap<String, serde_json::Value>,
11 pub nodegroup_id: String,
12 pub resourceinstance_id: String,
13 #[serde(default, skip_serializing_if = "Option::is_none")]
14 pub tileid: Option<String>,
15 #[serde(default)]
16 pub parenttile_id: Option<String>,
17 #[serde(default, skip_serializing_if = "Option::is_none")]
18 pub provisionaledits: Option<Vec<serde_json::Value>>,
19 #[serde(default, skip_serializing_if = "Option::is_none")]
20 pub sortorder: Option<i32>,
21}
22
23impl StaticTile {
24 pub fn new_empty(nodegroup_id: String) -> Self {
26 StaticTile {
27 tileid: None,
28 nodegroup_id,
29 parenttile_id: None,
30 resourceinstance_id: String::new(),
31 sortorder: None,
32 provisionaledits: None,
33 data: HashMap::new(),
34 }
35 }
36
37 pub fn ensure_id(&mut self) -> String {
39 if self.tileid.is_none() {
40 self.tileid = Some(uuid::Uuid::new_v4().to_string());
41 }
42 self.tileid.clone().unwrap()
43 }
44}