capability_skeleton/
skeleton_node_set_leaf_count.rs

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