capability_skeleton/
skeleton_node_getters.rs1crate::ix!();
3
4impl SkeletonNode {
5
6 pub fn id(&self) -> u16 {
8 match self {
9 SkeletonNode::Dispatch { id, .. }
10 | SkeletonNode::Aggregate { id, .. }
11 | SkeletonNode::LeafHolder { id, .. } => *id,
12 }
13 }
14
15 pub fn parent_id(&self) -> Option<u16> {
17 match self {
18 SkeletonNode::Dispatch { parent_id, .. }
19 | SkeletonNode::Aggregate { parent_id, .. }
20 | SkeletonNode::LeafHolder { parent_id, .. } => *parent_id,
21 }
22 }
23
24 pub fn name(&self) -> &str {
26 match self {
27 SkeletonNode::Dispatch { name, .. }
28 | SkeletonNode::Aggregate { name, .. }
29 | SkeletonNode::LeafHolder { name, .. } => name.as_str(),
30 }
31 }
32
33 pub fn original_key(&self) -> &str {
35 match self {
36 SkeletonNode::Dispatch { original_key, .. }
37 | SkeletonNode::Aggregate { original_key, .. }
38 | SkeletonNode::LeafHolder { original_key, .. } => original_key.as_str(),
39 }
40 }
41
42 pub fn ordering(&self) -> Option<&SubBranchOrdering> {
44 match self {
45 SkeletonNode::Dispatch { ordering, .. }
46 | SkeletonNode::Aggregate { ordering, .. }
47 | SkeletonNode::LeafHolder { ordering, .. } => ordering.as_ref(),
48 }
49 }
50
51 pub fn child_ids(&self) -> &[u16] {
53 match self {
54 SkeletonNode::Dispatch { child_ids, .. }
55 | SkeletonNode::Aggregate { child_ids, .. } => child_ids.as_slice(),
56 SkeletonNode::LeafHolder { .. } => &[],
57 }
58 }
59
60 pub fn leaf_count(&self) -> u16 {
62 match self {
63 SkeletonNode::LeafHolder { leaf_count, .. } => *leaf_count,
64 _ => 0,
65 }
66 }
67
68 pub fn capstone(&self) -> bool {
70 match self {
71 SkeletonNode::LeafHolder { capstone, .. } => *capstone,
72 _ => false,
73 }
74 }
75}