1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// ---------------- [ File: capability-skeleton/src/skeleton_node_set_leaf_count.rs ]
crate::ix!();
impl SkeletonNode {
/// Mutate `leaf_count`, turning this node into `LeafHolder` if needed.
pub fn set_leaf_count(&mut self, new_count: u16) {
match self {
SkeletonNode::LeafHolder { leaf_count, .. } => {
*leaf_count = new_count;
}
SkeletonNode::Dispatch {
id, parent_id, name, original_key, ordering, ..
} => {
*self = SkeletonNode::LeafHolder {
id: *id,
parent_id: *parent_id,
leaf_count: new_count,
capstone: false,
name: name.clone(),
original_key: original_key.clone(),
ordering: ordering.clone(),
};
}
SkeletonNode::Aggregate {
id, parent_id, name, original_key, ordering, ..
} => {
*self = SkeletonNode::LeafHolder {
id: *id,
parent_id: *parent_id,
leaf_count: new_count,
capstone: false,
name: name.clone(),
original_key: original_key.clone(),
ordering: ordering.clone(),
};
}
}
}
}