use crate::{GeneralSubcategory, Script};
use core::convert::TryInto;
use core::num::TryFromIntError;
use icu_codepointtrie::codepointtrie::TrieValue;
use num_enum::TryFromPrimitiveError;
use core::convert::TryFrom;
impl TrieValue for GeneralSubcategory {
const DATA_GET_ERROR_VALUE: GeneralSubcategory = GeneralSubcategory::Unassigned;
type TryFromU32Error = TryFromPrimitiveError<Self>;
fn try_from_u32(i: u32) -> Result<Self, Self::TryFromU32Error> {
GeneralSubcategory::try_from(i.try_into().unwrap_or(u8::MAX))
}
}
impl TrieValue for Script {
const DATA_GET_ERROR_VALUE: Script = Script::Unknown;
type TryFromU32Error = TryFromIntError;
fn try_from_u32(i: u32) -> Result<Self, Self::TryFromU32Error> {
u16::try_from(i).map(Script)
}
}