// This file is part of ICU4X. For terms of use, please see the file // called LICENSE at the top level of the ICU4X source tree // (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ). /// Intermediate metadata for a branch node under construction. #[derive(Debug, Clone, Copy)] pub(crate) struct BranchMeta { /// The lead byte for this branch. Formerly it was required to be an ASCII byte, but now /// it can be any byte. pub ascii: u8, /// The size in bytes of the trie data reachable from this branch. pub local_length: usize, /// The size in bytes of this and all later sibling branches. pub cumulative_length: usize, /// The number of later sibling branches, including this. pub count: usize, } impl BranchMeta { /// Creates a new empty [`BranchMeta`]. pub const fn default() -> Self { BranchMeta { ascii: 0, cumulative_length: 0, local_length: 0, count: 0, } } }