1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// 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 ).

use smallvec::SmallVec;

use super::provider::single_unit::SingleUnit;

// TODO NOTE: the MeasureUnitParser takes the trie and the ConverterFactory takes the full payload and an instance of MeasureUnitParser.
/// MeasureUnit is a struct that contains a processed CLDR unit.
///     For example, "meter-per-second".
/// NOTE:
///   - To construct a MeasureUnit from a cldr unit identifier, use the `MeasureUnitParser`.
#[derive(Debug)]
pub struct MeasureUnit {
    // TODO: make this field private and add functions to use it.
    /// Contains the processed units.
    pub contained_units: SmallVec<[SingleUnit; 8]>,
}