#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[repr(u8)]
pub enum EastAsianWidth {
Neutral = 0,
Ambiguous,
Halfwidth,
Wide,
Fullwidth,
Narrow,
}
impl EastAsianWidth {
#[inline]
#[must_use]
pub const fn abbr(self) -> &'static str {
match self {
EastAsianWidth::Neutral => "N",
EastAsianWidth::Ambiguous => "A",
EastAsianWidth::Halfwidth => "H",
EastAsianWidth::Wide => "W",
EastAsianWidth::Fullwidth => "F",
EastAsianWidth::Narrow => "Na",
}
}
#[inline]
#[must_use]
pub const fn is_wide(self) -> bool {
matches!(self, EastAsianWidth::Wide | EastAsianWidth::Fullwidth)
}
}
#[inline]
#[must_use]
pub const fn east_asian_width(c: char) -> EastAsianWidth {
super::generated::east_asian_width::east_asian_width(c as u32)
}
#[inline]
#[must_use]
pub const fn east_asian_width_u32(cp: u32) -> EastAsianWidth {
super::generated::east_asian_width::east_asian_width(cp)
}