#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
pub enum ArabicExtendedA {
ArabicLetterBehWithSmallVBelow,
ArabicLetterBehWithHamzaAbove,
ArabicLetterJeemWithTwoDotsAbove,
ArabicLetterTahWithTwoDotsAbove,
ArabicLetterFehWithDotBelowAndThreeDotsAbove,
ArabicLetterQafWithDotBelow,
ArabicLetterLamWithDoubleBar,
ArabicLetterMeemWithThreeDotsAbove,
ArabicLetterYehWithTwoDotsBelowAndHamzaAbove,
ArabicLetterYehWithTwoDotsBelowAndDotAbove,
ArabicLetterRehWithLoop,
ArabicLetterWawWithDotWithin,
ArabicLetterRohingyaYeh,
ArabicLetterLowAlef,
ArabicLetterDalWithThreeDotsBelow,
ArabicLetterSadWithThreeDotsBelow,
ArabicLetterGafWithInvertedStroke,
ArabicLetterStraightWaw,
ArabicLetterZainWithInvertedVAbove,
ArabicLetterAinWithThreeDotsBelow,
ArabicLetterKafWithDotBelow,
ArabicLetterBehWithSmallMeemAbove,
ArabicLetterPehWithSmallMeemAbove,
ArabicLetterTehWithSmallTehAbove,
ArabicLetterRehWithSmallNoonAbove,
ArabicLetterYehWithTwoDotsBelowAndSmallNoonAbove,
ArabicLetterAfricanFeh,
ArabicLetterAfricanQaf,
ArabicLetterAfricanNoon,
ArabicSmallLowWaw,
ArabicSmallHighWordArDashRub,
ArabicSmallHighSad,
ArabicSmallHighAin,
ArabicSmallHighQaf,
ArabicSmallHighNoonWithKasra,
ArabicSmallLowNoonWithKasra,
ArabicSmallHighWordAthDashThalatha,
ArabicSmallHighWordAsDashSajda,
ArabicSmallHighWordAnDashNisf,
ArabicSmallHighWordSakta,
ArabicSmallHighWordQif,
ArabicSmallHighWordWaqfa,
ArabicSmallHighFootnoteMarker,
ArabicSmallHighSignSafha,
ArabicDisputedEndOfAyah,
ArabicTurnedDammaBelow,
ArabicCurlyFatha,
ArabicCurlyDamma,
ArabicCurlyKasra,
ArabicCurlyFathatan,
ArabicCurlyDammatan,
ArabicCurlyKasratan,
ArabicToneOneDotAbove,
ArabicToneTwoDotsAbove,
ArabicToneLoopAbove,
ArabicToneOneDotBelow,
ArabicToneTwoDotsBelow,
ArabicToneLoopBelow,
ArabicOpenFathatan,
ArabicOpenDammatan,
ArabicOpenKasratan,
ArabicSmallHighWaw,
ArabicFathaWithRing,
ArabicFathaWithDotAbove,
ArabicKasraWithDotBelow,
ArabicLeftArrowheadAbove,
ArabicRightArrowheadAbove,
ArabicLeftArrowheadBelow,
ArabicRightArrowheadBelow,
ArabicDoubleRightArrowheadAbove,
ArabicDoubleRightArrowheadAboveWithDot,
ArabicRightArrowheadAboveWithDot,
ArabicDammaWithDot,
}
impl Into<char> for ArabicExtendedA {
fn into(self) -> char {
match self {
ArabicExtendedA::ArabicLetterBehWithSmallVBelow => 'ࢠ',
ArabicExtendedA::ArabicLetterBehWithHamzaAbove => 'ࢡ',
ArabicExtendedA::ArabicLetterJeemWithTwoDotsAbove => 'ࢢ',
ArabicExtendedA::ArabicLetterTahWithTwoDotsAbove => 'ࢣ',
ArabicExtendedA::ArabicLetterFehWithDotBelowAndThreeDotsAbove => 'ࢤ',
ArabicExtendedA::ArabicLetterQafWithDotBelow => 'ࢥ',
ArabicExtendedA::ArabicLetterLamWithDoubleBar => 'ࢦ',
ArabicExtendedA::ArabicLetterMeemWithThreeDotsAbove => 'ࢧ',
ArabicExtendedA::ArabicLetterYehWithTwoDotsBelowAndHamzaAbove => 'ࢨ',
ArabicExtendedA::ArabicLetterYehWithTwoDotsBelowAndDotAbove => 'ࢩ',
ArabicExtendedA::ArabicLetterRehWithLoop => 'ࢪ',
ArabicExtendedA::ArabicLetterWawWithDotWithin => 'ࢫ',
ArabicExtendedA::ArabicLetterRohingyaYeh => 'ࢬ',
ArabicExtendedA::ArabicLetterLowAlef => 'ࢭ',
ArabicExtendedA::ArabicLetterDalWithThreeDotsBelow => 'ࢮ',
ArabicExtendedA::ArabicLetterSadWithThreeDotsBelow => 'ࢯ',
ArabicExtendedA::ArabicLetterGafWithInvertedStroke => 'ࢰ',
ArabicExtendedA::ArabicLetterStraightWaw => 'ࢱ',
ArabicExtendedA::ArabicLetterZainWithInvertedVAbove => 'ࢲ',
ArabicExtendedA::ArabicLetterAinWithThreeDotsBelow => 'ࢳ',
ArabicExtendedA::ArabicLetterKafWithDotBelow => 'ࢴ',
ArabicExtendedA::ArabicLetterBehWithSmallMeemAbove => 'ࢶ',
ArabicExtendedA::ArabicLetterPehWithSmallMeemAbove => 'ࢷ',
ArabicExtendedA::ArabicLetterTehWithSmallTehAbove => 'ࢸ',
ArabicExtendedA::ArabicLetterRehWithSmallNoonAbove => 'ࢹ',
ArabicExtendedA::ArabicLetterYehWithTwoDotsBelowAndSmallNoonAbove => 'ࢺ',
ArabicExtendedA::ArabicLetterAfricanFeh => 'ࢻ',
ArabicExtendedA::ArabicLetterAfricanQaf => 'ࢼ',
ArabicExtendedA::ArabicLetterAfricanNoon => 'ࢽ',
ArabicExtendedA::ArabicSmallLowWaw => '࣓',
ArabicExtendedA::ArabicSmallHighWordArDashRub => 'ࣔ',
ArabicExtendedA::ArabicSmallHighSad => 'ࣕ',
ArabicExtendedA::ArabicSmallHighAin => 'ࣖ',
ArabicExtendedA::ArabicSmallHighQaf => 'ࣗ',
ArabicExtendedA::ArabicSmallHighNoonWithKasra => 'ࣘ',
ArabicExtendedA::ArabicSmallLowNoonWithKasra => 'ࣙ',
ArabicExtendedA::ArabicSmallHighWordAthDashThalatha => 'ࣚ',
ArabicExtendedA::ArabicSmallHighWordAsDashSajda => 'ࣛ',
ArabicExtendedA::ArabicSmallHighWordAnDashNisf => 'ࣜ',
ArabicExtendedA::ArabicSmallHighWordSakta => 'ࣝ',
ArabicExtendedA::ArabicSmallHighWordQif => 'ࣞ',
ArabicExtendedA::ArabicSmallHighWordWaqfa => 'ࣟ',
ArabicExtendedA::ArabicSmallHighFootnoteMarker => '࣠',
ArabicExtendedA::ArabicSmallHighSignSafha => '࣡',
ArabicExtendedA::ArabicDisputedEndOfAyah => '',
ArabicExtendedA::ArabicTurnedDammaBelow => 'ࣣ',
ArabicExtendedA::ArabicCurlyFatha => 'ࣤ',
ArabicExtendedA::ArabicCurlyDamma => 'ࣥ',
ArabicExtendedA::ArabicCurlyKasra => 'ࣦ',
ArabicExtendedA::ArabicCurlyFathatan => 'ࣧ',
ArabicExtendedA::ArabicCurlyDammatan => 'ࣨ',
ArabicExtendedA::ArabicCurlyKasratan => 'ࣩ',
ArabicExtendedA::ArabicToneOneDotAbove => '࣪',
ArabicExtendedA::ArabicToneTwoDotsAbove => '࣫',
ArabicExtendedA::ArabicToneLoopAbove => '࣬',
ArabicExtendedA::ArabicToneOneDotBelow => '࣭',
ArabicExtendedA::ArabicToneTwoDotsBelow => '࣮',
ArabicExtendedA::ArabicToneLoopBelow => '࣯',
ArabicExtendedA::ArabicOpenFathatan => 'ࣰ',
ArabicExtendedA::ArabicOpenDammatan => 'ࣱ',
ArabicExtendedA::ArabicOpenKasratan => 'ࣲ',
ArabicExtendedA::ArabicSmallHighWaw => 'ࣳ',
ArabicExtendedA::ArabicFathaWithRing => 'ࣴ',
ArabicExtendedA::ArabicFathaWithDotAbove => 'ࣵ',
ArabicExtendedA::ArabicKasraWithDotBelow => 'ࣶ',
ArabicExtendedA::ArabicLeftArrowheadAbove => 'ࣷ',
ArabicExtendedA::ArabicRightArrowheadAbove => 'ࣸ',
ArabicExtendedA::ArabicLeftArrowheadBelow => 'ࣹ',
ArabicExtendedA::ArabicRightArrowheadBelow => 'ࣺ',
ArabicExtendedA::ArabicDoubleRightArrowheadAbove => 'ࣻ',
ArabicExtendedA::ArabicDoubleRightArrowheadAboveWithDot => 'ࣼ',
ArabicExtendedA::ArabicRightArrowheadAboveWithDot => 'ࣽ',
ArabicExtendedA::ArabicDammaWithDot => 'ࣾ',
}
}
}
impl std::convert::TryFrom<char> for ArabicExtendedA {
type Error = ();
fn try_from(c: char) -> Result<Self, Self::Error> {
match c {
'ࢠ' => Ok(ArabicExtendedA::ArabicLetterBehWithSmallVBelow),
'ࢡ' => Ok(ArabicExtendedA::ArabicLetterBehWithHamzaAbove),
'ࢢ' => Ok(ArabicExtendedA::ArabicLetterJeemWithTwoDotsAbove),
'ࢣ' => Ok(ArabicExtendedA::ArabicLetterTahWithTwoDotsAbove),
'ࢤ' => Ok(ArabicExtendedA::ArabicLetterFehWithDotBelowAndThreeDotsAbove),
'ࢥ' => Ok(ArabicExtendedA::ArabicLetterQafWithDotBelow),
'ࢦ' => Ok(ArabicExtendedA::ArabicLetterLamWithDoubleBar),
'ࢧ' => Ok(ArabicExtendedA::ArabicLetterMeemWithThreeDotsAbove),
'ࢨ' => Ok(ArabicExtendedA::ArabicLetterYehWithTwoDotsBelowAndHamzaAbove),
'ࢩ' => Ok(ArabicExtendedA::ArabicLetterYehWithTwoDotsBelowAndDotAbove),
'ࢪ' => Ok(ArabicExtendedA::ArabicLetterRehWithLoop),
'ࢫ' => Ok(ArabicExtendedA::ArabicLetterWawWithDotWithin),
'ࢬ' => Ok(ArabicExtendedA::ArabicLetterRohingyaYeh),
'ࢭ' => Ok(ArabicExtendedA::ArabicLetterLowAlef),
'ࢮ' => Ok(ArabicExtendedA::ArabicLetterDalWithThreeDotsBelow),
'ࢯ' => Ok(ArabicExtendedA::ArabicLetterSadWithThreeDotsBelow),
'ࢰ' => Ok(ArabicExtendedA::ArabicLetterGafWithInvertedStroke),
'ࢱ' => Ok(ArabicExtendedA::ArabicLetterStraightWaw),
'ࢲ' => Ok(ArabicExtendedA::ArabicLetterZainWithInvertedVAbove),
'ࢳ' => Ok(ArabicExtendedA::ArabicLetterAinWithThreeDotsBelow),
'ࢴ' => Ok(ArabicExtendedA::ArabicLetterKafWithDotBelow),
'ࢶ' => Ok(ArabicExtendedA::ArabicLetterBehWithSmallMeemAbove),
'ࢷ' => Ok(ArabicExtendedA::ArabicLetterPehWithSmallMeemAbove),
'ࢸ' => Ok(ArabicExtendedA::ArabicLetterTehWithSmallTehAbove),
'ࢹ' => Ok(ArabicExtendedA::ArabicLetterRehWithSmallNoonAbove),
'ࢺ' => Ok(ArabicExtendedA::ArabicLetterYehWithTwoDotsBelowAndSmallNoonAbove),
'ࢻ' => Ok(ArabicExtendedA::ArabicLetterAfricanFeh),
'ࢼ' => Ok(ArabicExtendedA::ArabicLetterAfricanQaf),
'ࢽ' => Ok(ArabicExtendedA::ArabicLetterAfricanNoon),
'࣓' => Ok(ArabicExtendedA::ArabicSmallLowWaw),
'ࣔ' => Ok(ArabicExtendedA::ArabicSmallHighWordArDashRub),
'ࣕ' => Ok(ArabicExtendedA::ArabicSmallHighSad),
'ࣖ' => Ok(ArabicExtendedA::ArabicSmallHighAin),
'ࣗ' => Ok(ArabicExtendedA::ArabicSmallHighQaf),
'ࣘ' => Ok(ArabicExtendedA::ArabicSmallHighNoonWithKasra),
'ࣙ' => Ok(ArabicExtendedA::ArabicSmallLowNoonWithKasra),
'ࣚ' => Ok(ArabicExtendedA::ArabicSmallHighWordAthDashThalatha),
'ࣛ' => Ok(ArabicExtendedA::ArabicSmallHighWordAsDashSajda),
'ࣜ' => Ok(ArabicExtendedA::ArabicSmallHighWordAnDashNisf),
'ࣝ' => Ok(ArabicExtendedA::ArabicSmallHighWordSakta),
'ࣞ' => Ok(ArabicExtendedA::ArabicSmallHighWordQif),
'ࣟ' => Ok(ArabicExtendedA::ArabicSmallHighWordWaqfa),
'࣠' => Ok(ArabicExtendedA::ArabicSmallHighFootnoteMarker),
'࣡' => Ok(ArabicExtendedA::ArabicSmallHighSignSafha),
'' => Ok(ArabicExtendedA::ArabicDisputedEndOfAyah),
'ࣣ' => Ok(ArabicExtendedA::ArabicTurnedDammaBelow),
'ࣤ' => Ok(ArabicExtendedA::ArabicCurlyFatha),
'ࣥ' => Ok(ArabicExtendedA::ArabicCurlyDamma),
'ࣦ' => Ok(ArabicExtendedA::ArabicCurlyKasra),
'ࣧ' => Ok(ArabicExtendedA::ArabicCurlyFathatan),
'ࣨ' => Ok(ArabicExtendedA::ArabicCurlyDammatan),
'ࣩ' => Ok(ArabicExtendedA::ArabicCurlyKasratan),
'࣪' => Ok(ArabicExtendedA::ArabicToneOneDotAbove),
'࣫' => Ok(ArabicExtendedA::ArabicToneTwoDotsAbove),
'࣬' => Ok(ArabicExtendedA::ArabicToneLoopAbove),
'࣭' => Ok(ArabicExtendedA::ArabicToneOneDotBelow),
'࣮' => Ok(ArabicExtendedA::ArabicToneTwoDotsBelow),
'࣯' => Ok(ArabicExtendedA::ArabicToneLoopBelow),
'ࣰ' => Ok(ArabicExtendedA::ArabicOpenFathatan),
'ࣱ' => Ok(ArabicExtendedA::ArabicOpenDammatan),
'ࣲ' => Ok(ArabicExtendedA::ArabicOpenKasratan),
'ࣳ' => Ok(ArabicExtendedA::ArabicSmallHighWaw),
'ࣴ' => Ok(ArabicExtendedA::ArabicFathaWithRing),
'ࣵ' => Ok(ArabicExtendedA::ArabicFathaWithDotAbove),
'ࣶ' => Ok(ArabicExtendedA::ArabicKasraWithDotBelow),
'ࣷ' => Ok(ArabicExtendedA::ArabicLeftArrowheadAbove),
'ࣸ' => Ok(ArabicExtendedA::ArabicRightArrowheadAbove),
'ࣹ' => Ok(ArabicExtendedA::ArabicLeftArrowheadBelow),
'ࣺ' => Ok(ArabicExtendedA::ArabicRightArrowheadBelow),
'ࣻ' => Ok(ArabicExtendedA::ArabicDoubleRightArrowheadAbove),
'ࣼ' => Ok(ArabicExtendedA::ArabicDoubleRightArrowheadAboveWithDot),
'ࣽ' => Ok(ArabicExtendedA::ArabicRightArrowheadAboveWithDot),
'ࣾ' => Ok(ArabicExtendedA::ArabicDammaWithDot),
_ => Err(()),
}
}
}
impl Into<u32> for ArabicExtendedA {
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 ArabicExtendedA {
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 ArabicExtendedA {
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 ArabicExtendedA {
pub fn new() -> Self {
ArabicExtendedA::ArabicLetterBehWithSmallVBelow
}
pub fn name(&self) -> String {
let s = std::format!("ArabicExtendedA{:#?}", self);
string_morph::to_sentence_case(&s)
}
}