zerotrie/builder/branch_meta.rs
1// This file is part of ICU4X. For terms of use, please see the file
2// called LICENSE at the top level of the ICU4X source tree
3// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
4
5/// Intermediate metadata for a branch node under construction.
6#[derive(Debug, Clone, Copy)]
7pub(crate) struct BranchMeta {
8 /// The lead byte for this branch. Formerly it was required to be an ASCII byte, but now
9 /// it can be any byte.
10 pub ascii: u8,
11 /// The size in bytes of the trie data reachable from this branch.
12 pub local_length: usize,
13 /// The size in bytes of this and all later sibling branches.
14 pub cumulative_length: usize,
15 /// The number of later sibling branches, including this.
16 pub count: usize,
17}
18
19impl BranchMeta {
20 /// Creates a new empty [`BranchMeta`].
21 pub const fn default() -> Self {
22 BranchMeta {
23 ascii: 0,
24 cumulative_length: 0,
25 local_length: 0,
26 count: 0,
27 }
28 }
29}