use super::Number;
#[derive(Clone)]
#[non_exhaustive]
pub struct Measure<'a> {
pub number: Number,
pub unit: MeasureUnit<'a>,
pub flags: u32,
}
impl<'a> Measure<'a> {
pub fn new(number: Number, unit: MeasureUnit<'a>, flags: u32) -> Self {
Measure {
number,
unit,
flags,
}
}
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug)]
pub enum MeasureUnit<'a> {
Currency([u8; 3]),
Unit(&'a str),
}
impl MeasureUnit<'_> {
pub fn as_str(&self) -> &str {
match self {
MeasureUnit::Currency(c) => core::str::from_utf8(c).unwrap_or(""),
MeasureUnit::Unit(u) => u,
}
}
}