crate::ix!();
impl Default for SkeletonNode {
fn default() -> Self {
Self::LeafHolder {
id: 0,
parent_id: None,
leaf_count: 0,
capstone: false,
name: String::new(),
original_key: String::new(),
ordering: None,
}
}
}
#[derive(SaveLoad, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(tag = "node_variant")] pub enum SkeletonNode {
Dispatch {
#[serde(default)]
id: u16,
#[serde(default)]
parent_id: Option<u16>,
#[serde(default)]
child_ids: Vec<u16>,
#[serde(default)]
name: String,
#[serde(default)]
original_key: String,
#[serde(default)]
ordering: Option<SubBranchOrdering>,
},
Aggregate {
#[serde(default)]
id: u16,
#[serde(default)]
parent_id: Option<u16>,
#[serde(default)]
child_ids: Vec<u16>,
#[serde(default)]
name: String,
#[serde(default)]
original_key: String,
#[serde(default)]
ordering: Option<SubBranchOrdering>,
},
LeafHolder {
#[serde(default)]
id: u16,
#[serde(default)]
parent_id: Option<u16>,
#[serde(default)]
leaf_count: u16,
#[serde(default)]
capstone: bool,
#[serde(default)]
name: String,
#[serde(default)]
original_key: String,
#[serde(default)]
ordering: Option<SubBranchOrdering>,
},
}