#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
pub enum PhoneticExtensions {
LatinLetterSmallCapitalA,
LatinLetterSmallCapitalAe,
LatinSmallLetterTurnedAe,
LatinLetterSmallCapitalBarredB,
LatinLetterSmallCapitalC,
LatinLetterSmallCapitalD,
LatinLetterSmallCapitalEth,
LatinLetterSmallCapitalE,
LatinSmallLetterTurnedOpenE,
LatinSmallLetterTurnedI,
LatinLetterSmallCapitalJ,
LatinLetterSmallCapitalK,
LatinLetterSmallCapitalLWithStroke,
LatinLetterSmallCapitalM,
LatinLetterSmallCapitalReversedN,
LatinLetterSmallCapitalO,
LatinLetterSmallCapitalOpenO,
LatinSmallLetterSidewaysO,
LatinSmallLetterSidewaysOpenO,
LatinSmallLetterSidewaysOWithStroke,
LatinSmallLetterTurnedOe,
LatinLetterSmallCapitalOu,
LatinSmallLetterTopHalfO,
LatinSmallLetterBottomHalfO,
LatinLetterSmallCapitalP,
LatinLetterSmallCapitalReversedR,
LatinLetterSmallCapitalTurnedR,
LatinLetterSmallCapitalT,
LatinLetterSmallCapitalU,
LatinSmallLetterSidewaysU,
LatinSmallLetterSidewaysDiaeresizedU,
LatinSmallLetterSidewaysTurnedM,
LatinLetterSmallCapitalV,
LatinLetterSmallCapitalW,
LatinLetterSmallCapitalZ,
LatinLetterSmallCapitalEzh,
LatinLetterVoicedLaryngealSpirant,
LatinLetterAin,
GreekLetterSmallCapitalGamma,
GreekLetterSmallCapitalLamda,
GreekLetterSmallCapitalPi,
GreekLetterSmallCapitalRho,
GreekLetterSmallCapitalPsi,
CyrillicLetterSmallCapitalEl,
ModifierLetterCapitalA,
ModifierLetterCapitalAe,
ModifierLetterCapitalB,
ModifierLetterCapitalBarredB,
ModifierLetterCapitalD,
ModifierLetterCapitalE,
ModifierLetterCapitalReversedE,
ModifierLetterCapitalG,
ModifierLetterCapitalH,
ModifierLetterCapitalI,
ModifierLetterCapitalJ,
ModifierLetterCapitalK,
ModifierLetterCapitalL,
ModifierLetterCapitalM,
ModifierLetterCapitalN,
ModifierLetterCapitalReversedN,
ModifierLetterCapitalO,
ModifierLetterCapitalOu,
ModifierLetterCapitalP,
ModifierLetterCapitalR,
ModifierLetterCapitalT,
ModifierLetterCapitalU,
ModifierLetterCapitalW,
ModifierLetterSmallA,
ModifierLetterSmallTurnedA,
ModifierLetterSmallAlpha,
ModifierLetterSmallTurnedAe,
ModifierLetterSmallB,
ModifierLetterSmallD,
ModifierLetterSmallE,
ModifierLetterSmallSchwa,
ModifierLetterSmallOpenE,
ModifierLetterSmallTurnedOpenE,
ModifierLetterSmallG,
ModifierLetterSmallTurnedI,
ModifierLetterSmallK,
ModifierLetterSmallM,
ModifierLetterSmallEng,
ModifierLetterSmallO,
ModifierLetterSmallOpenO,
ModifierLetterSmallTopHalfO,
ModifierLetterSmallBottomHalfO,
ModifierLetterSmallP,
ModifierLetterSmallT,
ModifierLetterSmallU,
ModifierLetterSmallSidewaysU,
ModifierLetterSmallTurnedM,
ModifierLetterSmallV,
ModifierLetterSmallAin,
ModifierLetterSmallBeta,
ModifierLetterSmallGreekGamma,
ModifierLetterSmallDelta,
ModifierLetterSmallGreekPhi,
ModifierLetterSmallChi,
LatinSubscriptSmallLetterI,
LatinSubscriptSmallLetterR,
LatinSubscriptSmallLetterU,
LatinSubscriptSmallLetterV,
GreekSubscriptSmallLetterBeta,
GreekSubscriptSmallLetterGamma,
GreekSubscriptSmallLetterRho,
GreekSubscriptSmallLetterPhi,
GreekSubscriptSmallLetterChi,
LatinSmallLetterUe,
LatinSmallLetterBWithMiddleTilde,
LatinSmallLetterDWithMiddleTilde,
LatinSmallLetterFWithMiddleTilde,
LatinSmallLetterMWithMiddleTilde,
LatinSmallLetterNWithMiddleTilde,
LatinSmallLetterPWithMiddleTilde,
LatinSmallLetterRWithMiddleTilde,
LatinSmallLetterRWithFishhookAndMiddleTilde,
LatinSmallLetterSWithMiddleTilde,
LatinSmallLetterTWithMiddleTilde,
LatinSmallLetterZWithMiddleTilde,
LatinSmallLetterTurnedG,
ModifierLetterCyrillicEn,
LatinSmallLetterInsularG,
LatinSmallLetterThWithStrikethrough,
LatinSmallCapitalLetterIWithStroke,
LatinSmallLetterIotaWithStroke,
LatinSmallLetterPWithStroke,
LatinSmallCapitalLetterUWithStroke,
}
impl Into<char> for PhoneticExtensions {
fn into(self) -> char {
match self {
PhoneticExtensions::LatinLetterSmallCapitalA => 'ᴀ',
PhoneticExtensions::LatinLetterSmallCapitalAe => 'ᴁ',
PhoneticExtensions::LatinSmallLetterTurnedAe => 'ᴂ',
PhoneticExtensions::LatinLetterSmallCapitalBarredB => 'ᴃ',
PhoneticExtensions::LatinLetterSmallCapitalC => 'ᴄ',
PhoneticExtensions::LatinLetterSmallCapitalD => 'ᴅ',
PhoneticExtensions::LatinLetterSmallCapitalEth => 'ᴆ',
PhoneticExtensions::LatinLetterSmallCapitalE => 'ᴇ',
PhoneticExtensions::LatinSmallLetterTurnedOpenE => 'ᴈ',
PhoneticExtensions::LatinSmallLetterTurnedI => 'ᴉ',
PhoneticExtensions::LatinLetterSmallCapitalJ => 'ᴊ',
PhoneticExtensions::LatinLetterSmallCapitalK => 'ᴋ',
PhoneticExtensions::LatinLetterSmallCapitalLWithStroke => 'ᴌ',
PhoneticExtensions::LatinLetterSmallCapitalM => 'ᴍ',
PhoneticExtensions::LatinLetterSmallCapitalReversedN => 'ᴎ',
PhoneticExtensions::LatinLetterSmallCapitalO => 'ᴏ',
PhoneticExtensions::LatinLetterSmallCapitalOpenO => 'ᴐ',
PhoneticExtensions::LatinSmallLetterSidewaysO => 'ᴑ',
PhoneticExtensions::LatinSmallLetterSidewaysOpenO => 'ᴒ',
PhoneticExtensions::LatinSmallLetterSidewaysOWithStroke => 'ᴓ',
PhoneticExtensions::LatinSmallLetterTurnedOe => 'ᴔ',
PhoneticExtensions::LatinLetterSmallCapitalOu => 'ᴕ',
PhoneticExtensions::LatinSmallLetterTopHalfO => 'ᴖ',
PhoneticExtensions::LatinSmallLetterBottomHalfO => 'ᴗ',
PhoneticExtensions::LatinLetterSmallCapitalP => 'ᴘ',
PhoneticExtensions::LatinLetterSmallCapitalReversedR => 'ᴙ',
PhoneticExtensions::LatinLetterSmallCapitalTurnedR => 'ᴚ',
PhoneticExtensions::LatinLetterSmallCapitalT => 'ᴛ',
PhoneticExtensions::LatinLetterSmallCapitalU => 'ᴜ',
PhoneticExtensions::LatinSmallLetterSidewaysU => 'ᴝ',
PhoneticExtensions::LatinSmallLetterSidewaysDiaeresizedU => 'ᴞ',
PhoneticExtensions::LatinSmallLetterSidewaysTurnedM => 'ᴟ',
PhoneticExtensions::LatinLetterSmallCapitalV => 'ᴠ',
PhoneticExtensions::LatinLetterSmallCapitalW => 'ᴡ',
PhoneticExtensions::LatinLetterSmallCapitalZ => 'ᴢ',
PhoneticExtensions::LatinLetterSmallCapitalEzh => 'ᴣ',
PhoneticExtensions::LatinLetterVoicedLaryngealSpirant => 'ᴤ',
PhoneticExtensions::LatinLetterAin => 'ᴥ',
PhoneticExtensions::GreekLetterSmallCapitalGamma => 'ᴦ',
PhoneticExtensions::GreekLetterSmallCapitalLamda => 'ᴧ',
PhoneticExtensions::GreekLetterSmallCapitalPi => 'ᴨ',
PhoneticExtensions::GreekLetterSmallCapitalRho => 'ᴩ',
PhoneticExtensions::GreekLetterSmallCapitalPsi => 'ᴪ',
PhoneticExtensions::CyrillicLetterSmallCapitalEl => 'ᴫ',
PhoneticExtensions::ModifierLetterCapitalA => 'ᴬ',
PhoneticExtensions::ModifierLetterCapitalAe => 'ᴭ',
PhoneticExtensions::ModifierLetterCapitalB => 'ᴮ',
PhoneticExtensions::ModifierLetterCapitalBarredB => 'ᴯ',
PhoneticExtensions::ModifierLetterCapitalD => 'ᴰ',
PhoneticExtensions::ModifierLetterCapitalE => 'ᴱ',
PhoneticExtensions::ModifierLetterCapitalReversedE => 'ᴲ',
PhoneticExtensions::ModifierLetterCapitalG => 'ᴳ',
PhoneticExtensions::ModifierLetterCapitalH => 'ᴴ',
PhoneticExtensions::ModifierLetterCapitalI => 'ᴵ',
PhoneticExtensions::ModifierLetterCapitalJ => 'ᴶ',
PhoneticExtensions::ModifierLetterCapitalK => 'ᴷ',
PhoneticExtensions::ModifierLetterCapitalL => 'ᴸ',
PhoneticExtensions::ModifierLetterCapitalM => 'ᴹ',
PhoneticExtensions::ModifierLetterCapitalN => 'ᴺ',
PhoneticExtensions::ModifierLetterCapitalReversedN => 'ᴻ',
PhoneticExtensions::ModifierLetterCapitalO => 'ᴼ',
PhoneticExtensions::ModifierLetterCapitalOu => 'ᴽ',
PhoneticExtensions::ModifierLetterCapitalP => 'ᴾ',
PhoneticExtensions::ModifierLetterCapitalR => 'ᴿ',
PhoneticExtensions::ModifierLetterCapitalT => 'ᵀ',
PhoneticExtensions::ModifierLetterCapitalU => 'ᵁ',
PhoneticExtensions::ModifierLetterCapitalW => 'ᵂ',
PhoneticExtensions::ModifierLetterSmallA => 'ᵃ',
PhoneticExtensions::ModifierLetterSmallTurnedA => 'ᵄ',
PhoneticExtensions::ModifierLetterSmallAlpha => 'ᵅ',
PhoneticExtensions::ModifierLetterSmallTurnedAe => 'ᵆ',
PhoneticExtensions::ModifierLetterSmallB => 'ᵇ',
PhoneticExtensions::ModifierLetterSmallD => 'ᵈ',
PhoneticExtensions::ModifierLetterSmallE => 'ᵉ',
PhoneticExtensions::ModifierLetterSmallSchwa => 'ᵊ',
PhoneticExtensions::ModifierLetterSmallOpenE => 'ᵋ',
PhoneticExtensions::ModifierLetterSmallTurnedOpenE => 'ᵌ',
PhoneticExtensions::ModifierLetterSmallG => 'ᵍ',
PhoneticExtensions::ModifierLetterSmallTurnedI => 'ᵎ',
PhoneticExtensions::ModifierLetterSmallK => 'ᵏ',
PhoneticExtensions::ModifierLetterSmallM => 'ᵐ',
PhoneticExtensions::ModifierLetterSmallEng => 'ᵑ',
PhoneticExtensions::ModifierLetterSmallO => 'ᵒ',
PhoneticExtensions::ModifierLetterSmallOpenO => 'ᵓ',
PhoneticExtensions::ModifierLetterSmallTopHalfO => 'ᵔ',
PhoneticExtensions::ModifierLetterSmallBottomHalfO => 'ᵕ',
PhoneticExtensions::ModifierLetterSmallP => 'ᵖ',
PhoneticExtensions::ModifierLetterSmallT => 'ᵗ',
PhoneticExtensions::ModifierLetterSmallU => 'ᵘ',
PhoneticExtensions::ModifierLetterSmallSidewaysU => 'ᵙ',
PhoneticExtensions::ModifierLetterSmallTurnedM => 'ᵚ',
PhoneticExtensions::ModifierLetterSmallV => 'ᵛ',
PhoneticExtensions::ModifierLetterSmallAin => 'ᵜ',
PhoneticExtensions::ModifierLetterSmallBeta => 'ᵝ',
PhoneticExtensions::ModifierLetterSmallGreekGamma => 'ᵞ',
PhoneticExtensions::ModifierLetterSmallDelta => 'ᵟ',
PhoneticExtensions::ModifierLetterSmallGreekPhi => 'ᵠ',
PhoneticExtensions::ModifierLetterSmallChi => 'ᵡ',
PhoneticExtensions::LatinSubscriptSmallLetterI => 'ᵢ',
PhoneticExtensions::LatinSubscriptSmallLetterR => 'ᵣ',
PhoneticExtensions::LatinSubscriptSmallLetterU => 'ᵤ',
PhoneticExtensions::LatinSubscriptSmallLetterV => 'ᵥ',
PhoneticExtensions::GreekSubscriptSmallLetterBeta => 'ᵦ',
PhoneticExtensions::GreekSubscriptSmallLetterGamma => 'ᵧ',
PhoneticExtensions::GreekSubscriptSmallLetterRho => 'ᵨ',
PhoneticExtensions::GreekSubscriptSmallLetterPhi => 'ᵩ',
PhoneticExtensions::GreekSubscriptSmallLetterChi => 'ᵪ',
PhoneticExtensions::LatinSmallLetterUe => 'ᵫ',
PhoneticExtensions::LatinSmallLetterBWithMiddleTilde => 'ᵬ',
PhoneticExtensions::LatinSmallLetterDWithMiddleTilde => 'ᵭ',
PhoneticExtensions::LatinSmallLetterFWithMiddleTilde => 'ᵮ',
PhoneticExtensions::LatinSmallLetterMWithMiddleTilde => 'ᵯ',
PhoneticExtensions::LatinSmallLetterNWithMiddleTilde => 'ᵰ',
PhoneticExtensions::LatinSmallLetterPWithMiddleTilde => 'ᵱ',
PhoneticExtensions::LatinSmallLetterRWithMiddleTilde => 'ᵲ',
PhoneticExtensions::LatinSmallLetterRWithFishhookAndMiddleTilde => 'ᵳ',
PhoneticExtensions::LatinSmallLetterSWithMiddleTilde => 'ᵴ',
PhoneticExtensions::LatinSmallLetterTWithMiddleTilde => 'ᵵ',
PhoneticExtensions::LatinSmallLetterZWithMiddleTilde => 'ᵶ',
PhoneticExtensions::LatinSmallLetterTurnedG => 'ᵷ',
PhoneticExtensions::ModifierLetterCyrillicEn => 'ᵸ',
PhoneticExtensions::LatinSmallLetterInsularG => 'ᵹ',
PhoneticExtensions::LatinSmallLetterThWithStrikethrough => 'ᵺ',
PhoneticExtensions::LatinSmallCapitalLetterIWithStroke => 'ᵻ',
PhoneticExtensions::LatinSmallLetterIotaWithStroke => 'ᵼ',
PhoneticExtensions::LatinSmallLetterPWithStroke => 'ᵽ',
PhoneticExtensions::LatinSmallCapitalLetterUWithStroke => 'ᵾ',
}
}
}
impl std::convert::TryFrom<char> for PhoneticExtensions {
type Error = ();
fn try_from(c: char) -> Result<Self, Self::Error> {
match c {
'ᴀ' => Ok(PhoneticExtensions::LatinLetterSmallCapitalA),
'ᴁ' => Ok(PhoneticExtensions::LatinLetterSmallCapitalAe),
'ᴂ' => Ok(PhoneticExtensions::LatinSmallLetterTurnedAe),
'ᴃ' => Ok(PhoneticExtensions::LatinLetterSmallCapitalBarredB),
'ᴄ' => Ok(PhoneticExtensions::LatinLetterSmallCapitalC),
'ᴅ' => Ok(PhoneticExtensions::LatinLetterSmallCapitalD),
'ᴆ' => Ok(PhoneticExtensions::LatinLetterSmallCapitalEth),
'ᴇ' => Ok(PhoneticExtensions::LatinLetterSmallCapitalE),
'ᴈ' => Ok(PhoneticExtensions::LatinSmallLetterTurnedOpenE),
'ᴉ' => Ok(PhoneticExtensions::LatinSmallLetterTurnedI),
'ᴊ' => Ok(PhoneticExtensions::LatinLetterSmallCapitalJ),
'ᴋ' => Ok(PhoneticExtensions::LatinLetterSmallCapitalK),
'ᴌ' => Ok(PhoneticExtensions::LatinLetterSmallCapitalLWithStroke),
'ᴍ' => Ok(PhoneticExtensions::LatinLetterSmallCapitalM),
'ᴎ' => Ok(PhoneticExtensions::LatinLetterSmallCapitalReversedN),
'ᴏ' => Ok(PhoneticExtensions::LatinLetterSmallCapitalO),
'ᴐ' => Ok(PhoneticExtensions::LatinLetterSmallCapitalOpenO),
'ᴑ' => Ok(PhoneticExtensions::LatinSmallLetterSidewaysO),
'ᴒ' => Ok(PhoneticExtensions::LatinSmallLetterSidewaysOpenO),
'ᴓ' => Ok(PhoneticExtensions::LatinSmallLetterSidewaysOWithStroke),
'ᴔ' => Ok(PhoneticExtensions::LatinSmallLetterTurnedOe),
'ᴕ' => Ok(PhoneticExtensions::LatinLetterSmallCapitalOu),
'ᴖ' => Ok(PhoneticExtensions::LatinSmallLetterTopHalfO),
'ᴗ' => Ok(PhoneticExtensions::LatinSmallLetterBottomHalfO),
'ᴘ' => Ok(PhoneticExtensions::LatinLetterSmallCapitalP),
'ᴙ' => Ok(PhoneticExtensions::LatinLetterSmallCapitalReversedR),
'ᴚ' => Ok(PhoneticExtensions::LatinLetterSmallCapitalTurnedR),
'ᴛ' => Ok(PhoneticExtensions::LatinLetterSmallCapitalT),
'ᴜ' => Ok(PhoneticExtensions::LatinLetterSmallCapitalU),
'ᴝ' => Ok(PhoneticExtensions::LatinSmallLetterSidewaysU),
'ᴞ' => Ok(PhoneticExtensions::LatinSmallLetterSidewaysDiaeresizedU),
'ᴟ' => Ok(PhoneticExtensions::LatinSmallLetterSidewaysTurnedM),
'ᴠ' => Ok(PhoneticExtensions::LatinLetterSmallCapitalV),
'ᴡ' => Ok(PhoneticExtensions::LatinLetterSmallCapitalW),
'ᴢ' => Ok(PhoneticExtensions::LatinLetterSmallCapitalZ),
'ᴣ' => Ok(PhoneticExtensions::LatinLetterSmallCapitalEzh),
'ᴤ' => Ok(PhoneticExtensions::LatinLetterVoicedLaryngealSpirant),
'ᴥ' => Ok(PhoneticExtensions::LatinLetterAin),
'ᴦ' => Ok(PhoneticExtensions::GreekLetterSmallCapitalGamma),
'ᴧ' => Ok(PhoneticExtensions::GreekLetterSmallCapitalLamda),
'ᴨ' => Ok(PhoneticExtensions::GreekLetterSmallCapitalPi),
'ᴩ' => Ok(PhoneticExtensions::GreekLetterSmallCapitalRho),
'ᴪ' => Ok(PhoneticExtensions::GreekLetterSmallCapitalPsi),
'ᴫ' => Ok(PhoneticExtensions::CyrillicLetterSmallCapitalEl),
'ᴬ' => Ok(PhoneticExtensions::ModifierLetterCapitalA),
'ᴭ' => Ok(PhoneticExtensions::ModifierLetterCapitalAe),
'ᴮ' => Ok(PhoneticExtensions::ModifierLetterCapitalB),
'ᴯ' => Ok(PhoneticExtensions::ModifierLetterCapitalBarredB),
'ᴰ' => Ok(PhoneticExtensions::ModifierLetterCapitalD),
'ᴱ' => Ok(PhoneticExtensions::ModifierLetterCapitalE),
'ᴲ' => Ok(PhoneticExtensions::ModifierLetterCapitalReversedE),
'ᴳ' => Ok(PhoneticExtensions::ModifierLetterCapitalG),
'ᴴ' => Ok(PhoneticExtensions::ModifierLetterCapitalH),
'ᴵ' => Ok(PhoneticExtensions::ModifierLetterCapitalI),
'ᴶ' => Ok(PhoneticExtensions::ModifierLetterCapitalJ),
'ᴷ' => Ok(PhoneticExtensions::ModifierLetterCapitalK),
'ᴸ' => Ok(PhoneticExtensions::ModifierLetterCapitalL),
'ᴹ' => Ok(PhoneticExtensions::ModifierLetterCapitalM),
'ᴺ' => Ok(PhoneticExtensions::ModifierLetterCapitalN),
'ᴻ' => Ok(PhoneticExtensions::ModifierLetterCapitalReversedN),
'ᴼ' => Ok(PhoneticExtensions::ModifierLetterCapitalO),
'ᴽ' => Ok(PhoneticExtensions::ModifierLetterCapitalOu),
'ᴾ' => Ok(PhoneticExtensions::ModifierLetterCapitalP),
'ᴿ' => Ok(PhoneticExtensions::ModifierLetterCapitalR),
'ᵀ' => Ok(PhoneticExtensions::ModifierLetterCapitalT),
'ᵁ' => Ok(PhoneticExtensions::ModifierLetterCapitalU),
'ᵂ' => Ok(PhoneticExtensions::ModifierLetterCapitalW),
'ᵃ' => Ok(PhoneticExtensions::ModifierLetterSmallA),
'ᵄ' => Ok(PhoneticExtensions::ModifierLetterSmallTurnedA),
'ᵅ' => Ok(PhoneticExtensions::ModifierLetterSmallAlpha),
'ᵆ' => Ok(PhoneticExtensions::ModifierLetterSmallTurnedAe),
'ᵇ' => Ok(PhoneticExtensions::ModifierLetterSmallB),
'ᵈ' => Ok(PhoneticExtensions::ModifierLetterSmallD),
'ᵉ' => Ok(PhoneticExtensions::ModifierLetterSmallE),
'ᵊ' => Ok(PhoneticExtensions::ModifierLetterSmallSchwa),
'ᵋ' => Ok(PhoneticExtensions::ModifierLetterSmallOpenE),
'ᵌ' => Ok(PhoneticExtensions::ModifierLetterSmallTurnedOpenE),
'ᵍ' => Ok(PhoneticExtensions::ModifierLetterSmallG),
'ᵎ' => Ok(PhoneticExtensions::ModifierLetterSmallTurnedI),
'ᵏ' => Ok(PhoneticExtensions::ModifierLetterSmallK),
'ᵐ' => Ok(PhoneticExtensions::ModifierLetterSmallM),
'ᵑ' => Ok(PhoneticExtensions::ModifierLetterSmallEng),
'ᵒ' => Ok(PhoneticExtensions::ModifierLetterSmallO),
'ᵓ' => Ok(PhoneticExtensions::ModifierLetterSmallOpenO),
'ᵔ' => Ok(PhoneticExtensions::ModifierLetterSmallTopHalfO),
'ᵕ' => Ok(PhoneticExtensions::ModifierLetterSmallBottomHalfO),
'ᵖ' => Ok(PhoneticExtensions::ModifierLetterSmallP),
'ᵗ' => Ok(PhoneticExtensions::ModifierLetterSmallT),
'ᵘ' => Ok(PhoneticExtensions::ModifierLetterSmallU),
'ᵙ' => Ok(PhoneticExtensions::ModifierLetterSmallSidewaysU),
'ᵚ' => Ok(PhoneticExtensions::ModifierLetterSmallTurnedM),
'ᵛ' => Ok(PhoneticExtensions::ModifierLetterSmallV),
'ᵜ' => Ok(PhoneticExtensions::ModifierLetterSmallAin),
'ᵝ' => Ok(PhoneticExtensions::ModifierLetterSmallBeta),
'ᵞ' => Ok(PhoneticExtensions::ModifierLetterSmallGreekGamma),
'ᵟ' => Ok(PhoneticExtensions::ModifierLetterSmallDelta),
'ᵠ' => Ok(PhoneticExtensions::ModifierLetterSmallGreekPhi),
'ᵡ' => Ok(PhoneticExtensions::ModifierLetterSmallChi),
'ᵢ' => Ok(PhoneticExtensions::LatinSubscriptSmallLetterI),
'ᵣ' => Ok(PhoneticExtensions::LatinSubscriptSmallLetterR),
'ᵤ' => Ok(PhoneticExtensions::LatinSubscriptSmallLetterU),
'ᵥ' => Ok(PhoneticExtensions::LatinSubscriptSmallLetterV),
'ᵦ' => Ok(PhoneticExtensions::GreekSubscriptSmallLetterBeta),
'ᵧ' => Ok(PhoneticExtensions::GreekSubscriptSmallLetterGamma),
'ᵨ' => Ok(PhoneticExtensions::GreekSubscriptSmallLetterRho),
'ᵩ' => Ok(PhoneticExtensions::GreekSubscriptSmallLetterPhi),
'ᵪ' => Ok(PhoneticExtensions::GreekSubscriptSmallLetterChi),
'ᵫ' => Ok(PhoneticExtensions::LatinSmallLetterUe),
'ᵬ' => Ok(PhoneticExtensions::LatinSmallLetterBWithMiddleTilde),
'ᵭ' => Ok(PhoneticExtensions::LatinSmallLetterDWithMiddleTilde),
'ᵮ' => Ok(PhoneticExtensions::LatinSmallLetterFWithMiddleTilde),
'ᵯ' => Ok(PhoneticExtensions::LatinSmallLetterMWithMiddleTilde),
'ᵰ' => Ok(PhoneticExtensions::LatinSmallLetterNWithMiddleTilde),
'ᵱ' => Ok(PhoneticExtensions::LatinSmallLetterPWithMiddleTilde),
'ᵲ' => Ok(PhoneticExtensions::LatinSmallLetterRWithMiddleTilde),
'ᵳ' => Ok(PhoneticExtensions::LatinSmallLetterRWithFishhookAndMiddleTilde),
'ᵴ' => Ok(PhoneticExtensions::LatinSmallLetterSWithMiddleTilde),
'ᵵ' => Ok(PhoneticExtensions::LatinSmallLetterTWithMiddleTilde),
'ᵶ' => Ok(PhoneticExtensions::LatinSmallLetterZWithMiddleTilde),
'ᵷ' => Ok(PhoneticExtensions::LatinSmallLetterTurnedG),
'ᵸ' => Ok(PhoneticExtensions::ModifierLetterCyrillicEn),
'ᵹ' => Ok(PhoneticExtensions::LatinSmallLetterInsularG),
'ᵺ' => Ok(PhoneticExtensions::LatinSmallLetterThWithStrikethrough),
'ᵻ' => Ok(PhoneticExtensions::LatinSmallCapitalLetterIWithStroke),
'ᵼ' => Ok(PhoneticExtensions::LatinSmallLetterIotaWithStroke),
'ᵽ' => Ok(PhoneticExtensions::LatinSmallLetterPWithStroke),
'ᵾ' => Ok(PhoneticExtensions::LatinSmallCapitalLetterUWithStroke),
_ => Err(()),
}
}
}
impl Into<u32> for PhoneticExtensions {
fn into(self) -> u32 {
let c: char = self.into();
let hex = c
.escape_unicode()
.to_string()
.replace("\\u{", "")
.replace("}", "");
u32::from_str_radix(&hex, 16).unwrap()
}
}
impl std::convert::TryFrom<u32> for PhoneticExtensions {
type Error = ();
fn try_from(u: u32) -> Result<Self, Self::Error> {
if let Ok(c) = char::try_from(u) {
Self::try_from(c)
} else {
Err(())
}
}
}
impl Iterator for PhoneticExtensions {
type Item = Self;
fn next(&mut self) -> Option<Self> {
let index: u32 = (*self).into();
use std::convert::TryFrom;
Self::try_from(index + 1).ok()
}
}
impl PhoneticExtensions {
pub fn new() -> Self {
PhoneticExtensions::LatinLetterSmallCapitalA
}
pub fn name(&self) -> String {
let s = std::format!("PhoneticExtensions{:#?}", self);
string_morph::to_sentence_case(&s)
}
}