#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
pub enum Arabic {
NumberSign,
SignSanah,
FootnoteMarker,
SignSafha,
SignSamvat,
NumberMarkAbove,
DashIndicCubeRoot,
DashIndicFourthRoot,
Ray,
DashIndicPerMilleSign,
DashIndicPerTenThousandSign,
AfghaniSign,
Comma,
DateSeparator,
PoeticVerseSign,
SignMisra,
SignSallallahouAlayheWassallam,
SignAlayheAssallam,
SignRahmatullahAlayhe,
SignRadiAllahouAnhu,
SignTakhallus,
SmallHighTah,
SmallHighLigatureAlefWithLamWithYeh,
SmallHighZain,
SmallFatha,
SmallDamma,
SmallKasra,
Semicolon,
LetterMark,
TripleDotPunctuationMark,
QuestionMark,
LetterKashmiriYeh,
LetterHamza,
LetterAlefWithMaddaAbove,
LetterAlefWithHamzaAbove,
LetterWawWithHamzaAbove,
LetterAlefWithHamzaBelow,
LetterYehWithHamzaAbove,
LetterAlef,
LetterBeh,
LetterTehMarbuta,
LetterTeh,
LetterTheh,
LetterJeem,
LetterHah,
LetterKhah,
LetterDal,
LetterThal,
LetterReh,
LetterZain,
LetterSeen,
LetterSheen,
LetterSad,
LetterDad,
LetterTah,
LetterZah,
LetterAin,
LetterGhain,
LetterKehehWithTwoDotsAbove,
LetterKehehWithThreeDotsBelow,
LetterFarsiYehWithInvertedV,
LetterFarsiYehWithTwoDotsAbove,
LetterFarsiYehWithThreeDotsAbove,
Tatweel,
LetterFeh,
LetterQaf,
LetterKaf,
LetterLam,
LetterMeem,
LetterNoon,
LetterHeh,
LetterWaw,
LetterAlefMaksura,
LetterYeh,
Fathatan,
Dammatan,
Kasratan,
Fatha,
Damma,
Kasra,
Shadda,
Sukun,
MaddahAbove,
HamzaAbove,
HamzaBelow,
SubscriptAlef,
InvertedDamma,
MarkNoonGhunna,
Zwarakay,
VowelSignSmallVAbove,
VowelSignInvertedSmallVAbove,
VowelSignDotBelow,
ReversedDamma,
FathaWithTwoDots,
WavyHamzaBelow,
DashIndicDigitZero,
DashIndicDigitOne,
DashIndicDigitTwo,
DashIndicDigitThree,
DashIndicDigitFour,
DashIndicDigitFive,
DashIndicDigitSix,
DashIndicDigitSeven,
DashIndicDigitEight,
DashIndicDigitNine,
PercentSign,
DecimalSeparator,
ThousandsSeparator,
FivePointedStar,
LetterDotlessBeh,
LetterDotlessQaf,
LetterSuperscriptAlef,
LetterAlefWasla,
LetterAlefWithWavyHamzaAbove,
LetterAlefWithWavyHamzaBelow,
LetterHighHamza,
LetterHighHamzaAlef,
LetterHighHamzaWaw,
LetterUWithHamzaAbove,
LetterHighHamzaYeh,
LetterTteh,
LetterTteheh,
LetterBeeh,
LetterTehWithRing,
LetterTehWithThreeDotsAboveDownwards,
LetterPeh,
LetterTeheh,
LetterBeheh,
LetterHahWithHamzaAbove,
LetterHahWithTwoDotsVerticalAbove,
LetterNyeh,
LetterDyeh,
LetterHahWithThreeDotsAbove,
LetterTcheh,
LetterTcheheh,
LetterDdal,
LetterDalWithRing,
LetterDalWithDotBelow,
LetterDalWithDotBelowAndSmallTah,
LetterDahal,
LetterDdahal,
LetterDul,
LetterDalWithThreeDotsAboveDownwards,
LetterDalWithFourDotsAbove,
LetterRreh,
LetterRehWithSmallV,
LetterRehWithRing,
LetterRehWithDotBelow,
LetterRehWithSmallVBelow,
LetterRehWithDotBelowAndDotAbove,
LetterRehWithTwoDotsAbove,
LetterJeh,
LetterRehWithFourDotsAbove,
LetterSeenWithDotBelowAndDotAbove,
LetterSeenWithThreeDotsBelow,
LetterSeenWithThreeDotsBelowAndThreeDotsAbove,
LetterSadWithTwoDotsBelow,
LetterSadWithThreeDotsAbove,
LetterTahWithThreeDotsAbove,
LetterAinWithThreeDotsAbove,
LetterDotlessFeh,
LetterFehWithDotMovedBelow,
LetterFehWithDotBelow,
LetterVeh,
LetterFehWithThreeDotsBelow,
LetterPeheh,
LetterQafWithDotAbove,
LetterQafWithThreeDotsAbove,
LetterKeheh,
LetterSwashKaf,
LetterKafWithRing,
LetterKafWithDotAbove,
LetterNg,
LetterKafWithThreeDotsBelow,
LetterGaf,
LetterGafWithRing,
LetterNgoeh,
LetterGafWithTwoDotsBelow,
LetterGueh,
LetterGafWithThreeDotsAbove,
LetterLamWithSmallV,
LetterLamWithDotAbove,
LetterLamWithThreeDotsAbove,
LetterLamWithThreeDotsBelow,
LetterNoonWithDotBelow,
LetterNoonGhunna,
LetterRnoon,
LetterNoonWithRing,
LetterNoonWithThreeDotsAbove,
LetterHehDoachashmee,
LetterTchehWithDotAbove,
LetterHehWithYehAbove,
LetterHehGoal,
LetterHehGoalWithHamzaAbove,
LetterTehMarbutaGoal,
LetterWawWithRing,
LetterKirghizOe,
LetterOe,
LetterU,
LetterYu,
LetterKirghizYu,
LetterWawWithTwoDotsAbove,
LetterVe,
LetterFarsiYeh,
LetterYehWithTail,
LetterYehWithSmallV,
LetterWawWithDotAbove,
LetterE,
LetterYehWithThreeDotsBelow,
LetterYehBarree,
LetterYehBarreeWithHamzaAbove,
FullStop,
LetterAe,
SmallHighLigatureSadWithLamWithAlefMaksura,
SmallHighLigatureQafWithLamWithAlefMaksura,
SmallHighMeemInitialForm,
SmallHighLamAlef,
SmallHighJeem,
SmallHighThreeDots,
SmallHighSeen,
EndOfAyah,
StartOfRubElHizb,
SmallHighRoundedZero,
SmallHighUprightRectangularZero,
SmallHighDotlessHeadOfKhah,
SmallHighMeemIsolatedForm,
SmallLowSeen,
SmallHighMadda,
SmallWaw,
SmallYeh,
SmallHighYeh,
SmallHighNoon,
PlaceOfSajdah,
EmptyCentreLowStop,
EmptyCentreHighStop,
RoundedHighStopWithFilledCentre,
SmallLowMeem,
LetterDalWithInvertedV,
LetterRehWithInvertedV,
ExtendedDashIndicDigitZero,
ExtendedDashIndicDigitOne,
ExtendedDashIndicDigitTwo,
ExtendedDashIndicDigitThree,
ExtendedDashIndicDigitFour,
ExtendedDashIndicDigitFive,
ExtendedDashIndicDigitSix,
ExtendedDashIndicDigitSeven,
ExtendedDashIndicDigitEight,
ExtendedDashIndicDigitNine,
LetterSheenWithDotBelow,
LetterDadWithDotBelow,
LetterGhainWithDotBelow,
SignSindhiAmpersand,
SignSindhiPostpositionMen,
}
impl Into<char> for Arabic {
fn into(self) -> char {
match self {
Arabic::NumberSign => '',
Arabic::SignSanah => '',
Arabic::FootnoteMarker => '',
Arabic::SignSafha => '',
Arabic::SignSamvat => '',
Arabic::NumberMarkAbove => '',
Arabic::DashIndicCubeRoot => '؆',
Arabic::DashIndicFourthRoot => '؇',
Arabic::Ray => '؈',
Arabic::DashIndicPerMilleSign => '؉',
Arabic::DashIndicPerTenThousandSign => '؊',
Arabic::AfghaniSign => '؋',
Arabic::Comma => '،',
Arabic::DateSeparator => '؍',
Arabic::PoeticVerseSign => '؎',
Arabic::SignMisra => '؏',
Arabic::SignSallallahouAlayheWassallam => 'ؐ',
Arabic::SignAlayheAssallam => 'ؑ',
Arabic::SignRahmatullahAlayhe => 'ؒ',
Arabic::SignRadiAllahouAnhu => 'ؓ',
Arabic::SignTakhallus => 'ؔ',
Arabic::SmallHighTah => 'ؕ',
Arabic::SmallHighLigatureAlefWithLamWithYeh => 'ؖ',
Arabic::SmallHighZain => 'ؗ',
Arabic::SmallFatha => 'ؘ',
Arabic::SmallDamma => 'ؙ',
Arabic::SmallKasra => 'ؚ',
Arabic::Semicolon => '؛',
Arabic::LetterMark => '',
Arabic::TripleDotPunctuationMark => '؞',
Arabic::QuestionMark => '؟',
Arabic::LetterKashmiriYeh => 'ؠ',
Arabic::LetterHamza => 'ء',
Arabic::LetterAlefWithMaddaAbove => 'آ',
Arabic::LetterAlefWithHamzaAbove => 'أ',
Arabic::LetterWawWithHamzaAbove => 'ؤ',
Arabic::LetterAlefWithHamzaBelow => 'إ',
Arabic::LetterYehWithHamzaAbove => 'ئ',
Arabic::LetterAlef => 'ا',
Arabic::LetterBeh => 'ب',
Arabic::LetterTehMarbuta => 'ة',
Arabic::LetterTeh => 'ت',
Arabic::LetterTheh => 'ث',
Arabic::LetterJeem => 'ج',
Arabic::LetterHah => 'ح',
Arabic::LetterKhah => 'خ',
Arabic::LetterDal => 'د',
Arabic::LetterThal => 'ذ',
Arabic::LetterReh => 'ر',
Arabic::LetterZain => 'ز',
Arabic::LetterSeen => 'س',
Arabic::LetterSheen => 'ش',
Arabic::LetterSad => 'ص',
Arabic::LetterDad => 'ض',
Arabic::LetterTah => 'ط',
Arabic::LetterZah => 'ظ',
Arabic::LetterAin => 'ع',
Arabic::LetterGhain => 'غ',
Arabic::LetterKehehWithTwoDotsAbove => 'ػ',
Arabic::LetterKehehWithThreeDotsBelow => 'ؼ',
Arabic::LetterFarsiYehWithInvertedV => 'ؽ',
Arabic::LetterFarsiYehWithTwoDotsAbove => 'ؾ',
Arabic::LetterFarsiYehWithThreeDotsAbove => 'ؿ',
Arabic::Tatweel => 'ـ',
Arabic::LetterFeh => 'ف',
Arabic::LetterQaf => 'ق',
Arabic::LetterKaf => 'ك',
Arabic::LetterLam => 'ل',
Arabic::LetterMeem => 'م',
Arabic::LetterNoon => 'ن',
Arabic::LetterHeh => 'ه',
Arabic::LetterWaw => 'و',
Arabic::LetterAlefMaksura => 'ى',
Arabic::LetterYeh => 'ي',
Arabic::Fathatan => 'ً',
Arabic::Dammatan => 'ٌ',
Arabic::Kasratan => 'ٍ',
Arabic::Fatha => 'َ',
Arabic::Damma => 'ُ',
Arabic::Kasra => 'ِ',
Arabic::Shadda => 'ّ',
Arabic::Sukun => 'ْ',
Arabic::MaddahAbove => 'ٓ',
Arabic::HamzaAbove => 'ٔ',
Arabic::HamzaBelow => 'ٕ',
Arabic::SubscriptAlef => 'ٖ',
Arabic::InvertedDamma => 'ٗ',
Arabic::MarkNoonGhunna => '٘',
Arabic::Zwarakay => 'ٙ',
Arabic::VowelSignSmallVAbove => 'ٚ',
Arabic::VowelSignInvertedSmallVAbove => 'ٛ',
Arabic::VowelSignDotBelow => 'ٜ',
Arabic::ReversedDamma => 'ٝ',
Arabic::FathaWithTwoDots => 'ٞ',
Arabic::WavyHamzaBelow => 'ٟ',
Arabic::DashIndicDigitZero => '٠',
Arabic::DashIndicDigitOne => '١',
Arabic::DashIndicDigitTwo => '٢',
Arabic::DashIndicDigitThree => '٣',
Arabic::DashIndicDigitFour => '٤',
Arabic::DashIndicDigitFive => '٥',
Arabic::DashIndicDigitSix => '٦',
Arabic::DashIndicDigitSeven => '٧',
Arabic::DashIndicDigitEight => '٨',
Arabic::DashIndicDigitNine => '٩',
Arabic::PercentSign => '٪',
Arabic::DecimalSeparator => '٫',
Arabic::ThousandsSeparator => '٬',
Arabic::FivePointedStar => '٭',
Arabic::LetterDotlessBeh => 'ٮ',
Arabic::LetterDotlessQaf => 'ٯ',
Arabic::LetterSuperscriptAlef => 'ٰ',
Arabic::LetterAlefWasla => 'ٱ',
Arabic::LetterAlefWithWavyHamzaAbove => 'ٲ',
Arabic::LetterAlefWithWavyHamzaBelow => 'ٳ',
Arabic::LetterHighHamza => 'ٴ',
Arabic::LetterHighHamzaAlef => 'ٵ',
Arabic::LetterHighHamzaWaw => 'ٶ',
Arabic::LetterUWithHamzaAbove => 'ٷ',
Arabic::LetterHighHamzaYeh => 'ٸ',
Arabic::LetterTteh => 'ٹ',
Arabic::LetterTteheh => 'ٺ',
Arabic::LetterBeeh => 'ٻ',
Arabic::LetterTehWithRing => 'ټ',
Arabic::LetterTehWithThreeDotsAboveDownwards => 'ٽ',
Arabic::LetterPeh => 'پ',
Arabic::LetterTeheh => 'ٿ',
Arabic::LetterBeheh => 'ڀ',
Arabic::LetterHahWithHamzaAbove => 'ځ',
Arabic::LetterHahWithTwoDotsVerticalAbove => 'ڂ',
Arabic::LetterNyeh => 'ڃ',
Arabic::LetterDyeh => 'ڄ',
Arabic::LetterHahWithThreeDotsAbove => 'څ',
Arabic::LetterTcheh => 'چ',
Arabic::LetterTcheheh => 'ڇ',
Arabic::LetterDdal => 'ڈ',
Arabic::LetterDalWithRing => 'ډ',
Arabic::LetterDalWithDotBelow => 'ڊ',
Arabic::LetterDalWithDotBelowAndSmallTah => 'ڋ',
Arabic::LetterDahal => 'ڌ',
Arabic::LetterDdahal => 'ڍ',
Arabic::LetterDul => 'ڎ',
Arabic::LetterDalWithThreeDotsAboveDownwards => 'ڏ',
Arabic::LetterDalWithFourDotsAbove => 'ڐ',
Arabic::LetterRreh => 'ڑ',
Arabic::LetterRehWithSmallV => 'ڒ',
Arabic::LetterRehWithRing => 'ړ',
Arabic::LetterRehWithDotBelow => 'ڔ',
Arabic::LetterRehWithSmallVBelow => 'ڕ',
Arabic::LetterRehWithDotBelowAndDotAbove => 'ږ',
Arabic::LetterRehWithTwoDotsAbove => 'ڗ',
Arabic::LetterJeh => 'ژ',
Arabic::LetterRehWithFourDotsAbove => 'ڙ',
Arabic::LetterSeenWithDotBelowAndDotAbove => 'ښ',
Arabic::LetterSeenWithThreeDotsBelow => 'ڛ',
Arabic::LetterSeenWithThreeDotsBelowAndThreeDotsAbove => 'ڜ',
Arabic::LetterSadWithTwoDotsBelow => 'ڝ',
Arabic::LetterSadWithThreeDotsAbove => 'ڞ',
Arabic::LetterTahWithThreeDotsAbove => 'ڟ',
Arabic::LetterAinWithThreeDotsAbove => 'ڠ',
Arabic::LetterDotlessFeh => 'ڡ',
Arabic::LetterFehWithDotMovedBelow => 'ڢ',
Arabic::LetterFehWithDotBelow => 'ڣ',
Arabic::LetterVeh => 'ڤ',
Arabic::LetterFehWithThreeDotsBelow => 'ڥ',
Arabic::LetterPeheh => 'ڦ',
Arabic::LetterQafWithDotAbove => 'ڧ',
Arabic::LetterQafWithThreeDotsAbove => 'ڨ',
Arabic::LetterKeheh => 'ک',
Arabic::LetterSwashKaf => 'ڪ',
Arabic::LetterKafWithRing => 'ګ',
Arabic::LetterKafWithDotAbove => 'ڬ',
Arabic::LetterNg => 'ڭ',
Arabic::LetterKafWithThreeDotsBelow => 'ڮ',
Arabic::LetterGaf => 'گ',
Arabic::LetterGafWithRing => 'ڰ',
Arabic::LetterNgoeh => 'ڱ',
Arabic::LetterGafWithTwoDotsBelow => 'ڲ',
Arabic::LetterGueh => 'ڳ',
Arabic::LetterGafWithThreeDotsAbove => 'ڴ',
Arabic::LetterLamWithSmallV => 'ڵ',
Arabic::LetterLamWithDotAbove => 'ڶ',
Arabic::LetterLamWithThreeDotsAbove => 'ڷ',
Arabic::LetterLamWithThreeDotsBelow => 'ڸ',
Arabic::LetterNoonWithDotBelow => 'ڹ',
Arabic::LetterNoonGhunna => 'ں',
Arabic::LetterRnoon => 'ڻ',
Arabic::LetterNoonWithRing => 'ڼ',
Arabic::LetterNoonWithThreeDotsAbove => 'ڽ',
Arabic::LetterHehDoachashmee => 'ھ',
Arabic::LetterTchehWithDotAbove => 'ڿ',
Arabic::LetterHehWithYehAbove => 'ۀ',
Arabic::LetterHehGoal => 'ہ',
Arabic::LetterHehGoalWithHamzaAbove => 'ۂ',
Arabic::LetterTehMarbutaGoal => 'ۃ',
Arabic::LetterWawWithRing => 'ۄ',
Arabic::LetterKirghizOe => 'ۅ',
Arabic::LetterOe => 'ۆ',
Arabic::LetterU => 'ۇ',
Arabic::LetterYu => 'ۈ',
Arabic::LetterKirghizYu => 'ۉ',
Arabic::LetterWawWithTwoDotsAbove => 'ۊ',
Arabic::LetterVe => 'ۋ',
Arabic::LetterFarsiYeh => 'ی',
Arabic::LetterYehWithTail => 'ۍ',
Arabic::LetterYehWithSmallV => 'ێ',
Arabic::LetterWawWithDotAbove => 'ۏ',
Arabic::LetterE => 'ې',
Arabic::LetterYehWithThreeDotsBelow => 'ۑ',
Arabic::LetterYehBarree => 'ے',
Arabic::LetterYehBarreeWithHamzaAbove => 'ۓ',
Arabic::FullStop => '۔',
Arabic::LetterAe => 'ە',
Arabic::SmallHighLigatureSadWithLamWithAlefMaksura => 'ۖ',
Arabic::SmallHighLigatureQafWithLamWithAlefMaksura => 'ۗ',
Arabic::SmallHighMeemInitialForm => 'ۘ',
Arabic::SmallHighLamAlef => 'ۙ',
Arabic::SmallHighJeem => 'ۚ',
Arabic::SmallHighThreeDots => 'ۛ',
Arabic::SmallHighSeen => 'ۜ',
Arabic::EndOfAyah => '',
Arabic::StartOfRubElHizb => '۞',
Arabic::SmallHighRoundedZero => '۟',
Arabic::SmallHighUprightRectangularZero => '۠',
Arabic::SmallHighDotlessHeadOfKhah => 'ۡ',
Arabic::SmallHighMeemIsolatedForm => 'ۢ',
Arabic::SmallLowSeen => 'ۣ',
Arabic::SmallHighMadda => 'ۤ',
Arabic::SmallWaw => 'ۥ',
Arabic::SmallYeh => 'ۦ',
Arabic::SmallHighYeh => 'ۧ',
Arabic::SmallHighNoon => 'ۨ',
Arabic::PlaceOfSajdah => '۩',
Arabic::EmptyCentreLowStop => '۪',
Arabic::EmptyCentreHighStop => '۫',
Arabic::RoundedHighStopWithFilledCentre => '۬',
Arabic::SmallLowMeem => 'ۭ',
Arabic::LetterDalWithInvertedV => 'ۮ',
Arabic::LetterRehWithInvertedV => 'ۯ',
Arabic::ExtendedDashIndicDigitZero => '۰',
Arabic::ExtendedDashIndicDigitOne => '۱',
Arabic::ExtendedDashIndicDigitTwo => '۲',
Arabic::ExtendedDashIndicDigitThree => '۳',
Arabic::ExtendedDashIndicDigitFour => '۴',
Arabic::ExtendedDashIndicDigitFive => '۵',
Arabic::ExtendedDashIndicDigitSix => '۶',
Arabic::ExtendedDashIndicDigitSeven => '۷',
Arabic::ExtendedDashIndicDigitEight => '۸',
Arabic::ExtendedDashIndicDigitNine => '۹',
Arabic::LetterSheenWithDotBelow => 'ۺ',
Arabic::LetterDadWithDotBelow => 'ۻ',
Arabic::LetterGhainWithDotBelow => 'ۼ',
Arabic::SignSindhiAmpersand => '۽',
Arabic::SignSindhiPostpositionMen => '۾',
}
}
}
impl std::convert::TryFrom<char> for Arabic {
type Error = ();
fn try_from(c: char) -> Result<Self, Self::Error> {
match c {
'' => Ok(Arabic::NumberSign),
'' => Ok(Arabic::SignSanah),
'' => Ok(Arabic::FootnoteMarker),
'' => Ok(Arabic::SignSafha),
'' => Ok(Arabic::SignSamvat),
'' => Ok(Arabic::NumberMarkAbove),
'؆' => Ok(Arabic::DashIndicCubeRoot),
'؇' => Ok(Arabic::DashIndicFourthRoot),
'؈' => Ok(Arabic::Ray),
'؉' => Ok(Arabic::DashIndicPerMilleSign),
'؊' => Ok(Arabic::DashIndicPerTenThousandSign),
'؋' => Ok(Arabic::AfghaniSign),
'،' => Ok(Arabic::Comma),
'؍' => Ok(Arabic::DateSeparator),
'؎' => Ok(Arabic::PoeticVerseSign),
'؏' => Ok(Arabic::SignMisra),
'ؐ' => Ok(Arabic::SignSallallahouAlayheWassallam),
'ؑ' => Ok(Arabic::SignAlayheAssallam),
'ؒ' => Ok(Arabic::SignRahmatullahAlayhe),
'ؓ' => Ok(Arabic::SignRadiAllahouAnhu),
'ؔ' => Ok(Arabic::SignTakhallus),
'ؕ' => Ok(Arabic::SmallHighTah),
'ؖ' => Ok(Arabic::SmallHighLigatureAlefWithLamWithYeh),
'ؗ' => Ok(Arabic::SmallHighZain),
'ؘ' => Ok(Arabic::SmallFatha),
'ؙ' => Ok(Arabic::SmallDamma),
'ؚ' => Ok(Arabic::SmallKasra),
'؛' => Ok(Arabic::Semicolon),
'' => Ok(Arabic::LetterMark),
'؞' => Ok(Arabic::TripleDotPunctuationMark),
'؟' => Ok(Arabic::QuestionMark),
'ؠ' => Ok(Arabic::LetterKashmiriYeh),
'ء' => Ok(Arabic::LetterHamza),
'آ' => Ok(Arabic::LetterAlefWithMaddaAbove),
'أ' => Ok(Arabic::LetterAlefWithHamzaAbove),
'ؤ' => Ok(Arabic::LetterWawWithHamzaAbove),
'إ' => Ok(Arabic::LetterAlefWithHamzaBelow),
'ئ' => Ok(Arabic::LetterYehWithHamzaAbove),
'ا' => Ok(Arabic::LetterAlef),
'ب' => Ok(Arabic::LetterBeh),
'ة' => Ok(Arabic::LetterTehMarbuta),
'ت' => Ok(Arabic::LetterTeh),
'ث' => Ok(Arabic::LetterTheh),
'ج' => Ok(Arabic::LetterJeem),
'ح' => Ok(Arabic::LetterHah),
'خ' => Ok(Arabic::LetterKhah),
'د' => Ok(Arabic::LetterDal),
'ذ' => Ok(Arabic::LetterThal),
'ر' => Ok(Arabic::LetterReh),
'ز' => Ok(Arabic::LetterZain),
'س' => Ok(Arabic::LetterSeen),
'ش' => Ok(Arabic::LetterSheen),
'ص' => Ok(Arabic::LetterSad),
'ض' => Ok(Arabic::LetterDad),
'ط' => Ok(Arabic::LetterTah),
'ظ' => Ok(Arabic::LetterZah),
'ع' => Ok(Arabic::LetterAin),
'غ' => Ok(Arabic::LetterGhain),
'ػ' => Ok(Arabic::LetterKehehWithTwoDotsAbove),
'ؼ' => Ok(Arabic::LetterKehehWithThreeDotsBelow),
'ؽ' => Ok(Arabic::LetterFarsiYehWithInvertedV),
'ؾ' => Ok(Arabic::LetterFarsiYehWithTwoDotsAbove),
'ؿ' => Ok(Arabic::LetterFarsiYehWithThreeDotsAbove),
'ـ' => Ok(Arabic::Tatweel),
'ف' => Ok(Arabic::LetterFeh),
'ق' => Ok(Arabic::LetterQaf),
'ك' => Ok(Arabic::LetterKaf),
'ل' => Ok(Arabic::LetterLam),
'م' => Ok(Arabic::LetterMeem),
'ن' => Ok(Arabic::LetterNoon),
'ه' => Ok(Arabic::LetterHeh),
'و' => Ok(Arabic::LetterWaw),
'ى' => Ok(Arabic::LetterAlefMaksura),
'ي' => Ok(Arabic::LetterYeh),
'ً' => Ok(Arabic::Fathatan),
'ٌ' => Ok(Arabic::Dammatan),
'ٍ' => Ok(Arabic::Kasratan),
'َ' => Ok(Arabic::Fatha),
'ُ' => Ok(Arabic::Damma),
'ِ' => Ok(Arabic::Kasra),
'ّ' => Ok(Arabic::Shadda),
'ْ' => Ok(Arabic::Sukun),
'ٓ' => Ok(Arabic::MaddahAbove),
'ٔ' => Ok(Arabic::HamzaAbove),
'ٕ' => Ok(Arabic::HamzaBelow),
'ٖ' => Ok(Arabic::SubscriptAlef),
'ٗ' => Ok(Arabic::InvertedDamma),
'٘' => Ok(Arabic::MarkNoonGhunna),
'ٙ' => Ok(Arabic::Zwarakay),
'ٚ' => Ok(Arabic::VowelSignSmallVAbove),
'ٛ' => Ok(Arabic::VowelSignInvertedSmallVAbove),
'ٜ' => Ok(Arabic::VowelSignDotBelow),
'ٝ' => Ok(Arabic::ReversedDamma),
'ٞ' => Ok(Arabic::FathaWithTwoDots),
'ٟ' => Ok(Arabic::WavyHamzaBelow),
'٠' => Ok(Arabic::DashIndicDigitZero),
'١' => Ok(Arabic::DashIndicDigitOne),
'٢' => Ok(Arabic::DashIndicDigitTwo),
'٣' => Ok(Arabic::DashIndicDigitThree),
'٤' => Ok(Arabic::DashIndicDigitFour),
'٥' => Ok(Arabic::DashIndicDigitFive),
'٦' => Ok(Arabic::DashIndicDigitSix),
'٧' => Ok(Arabic::DashIndicDigitSeven),
'٨' => Ok(Arabic::DashIndicDigitEight),
'٩' => Ok(Arabic::DashIndicDigitNine),
'٪' => Ok(Arabic::PercentSign),
'٫' => Ok(Arabic::DecimalSeparator),
'٬' => Ok(Arabic::ThousandsSeparator),
'٭' => Ok(Arabic::FivePointedStar),
'ٮ' => Ok(Arabic::LetterDotlessBeh),
'ٯ' => Ok(Arabic::LetterDotlessQaf),
'ٰ' => Ok(Arabic::LetterSuperscriptAlef),
'ٱ' => Ok(Arabic::LetterAlefWasla),
'ٲ' => Ok(Arabic::LetterAlefWithWavyHamzaAbove),
'ٳ' => Ok(Arabic::LetterAlefWithWavyHamzaBelow),
'ٴ' => Ok(Arabic::LetterHighHamza),
'ٵ' => Ok(Arabic::LetterHighHamzaAlef),
'ٶ' => Ok(Arabic::LetterHighHamzaWaw),
'ٷ' => Ok(Arabic::LetterUWithHamzaAbove),
'ٸ' => Ok(Arabic::LetterHighHamzaYeh),
'ٹ' => Ok(Arabic::LetterTteh),
'ٺ' => Ok(Arabic::LetterTteheh),
'ٻ' => Ok(Arabic::LetterBeeh),
'ټ' => Ok(Arabic::LetterTehWithRing),
'ٽ' => Ok(Arabic::LetterTehWithThreeDotsAboveDownwards),
'پ' => Ok(Arabic::LetterPeh),
'ٿ' => Ok(Arabic::LetterTeheh),
'ڀ' => Ok(Arabic::LetterBeheh),
'ځ' => Ok(Arabic::LetterHahWithHamzaAbove),
'ڂ' => Ok(Arabic::LetterHahWithTwoDotsVerticalAbove),
'ڃ' => Ok(Arabic::LetterNyeh),
'ڄ' => Ok(Arabic::LetterDyeh),
'څ' => Ok(Arabic::LetterHahWithThreeDotsAbove),
'چ' => Ok(Arabic::LetterTcheh),
'ڇ' => Ok(Arabic::LetterTcheheh),
'ڈ' => Ok(Arabic::LetterDdal),
'ډ' => Ok(Arabic::LetterDalWithRing),
'ڊ' => Ok(Arabic::LetterDalWithDotBelow),
'ڋ' => Ok(Arabic::LetterDalWithDotBelowAndSmallTah),
'ڌ' => Ok(Arabic::LetterDahal),
'ڍ' => Ok(Arabic::LetterDdahal),
'ڎ' => Ok(Arabic::LetterDul),
'ڏ' => Ok(Arabic::LetterDalWithThreeDotsAboveDownwards),
'ڐ' => Ok(Arabic::LetterDalWithFourDotsAbove),
'ڑ' => Ok(Arabic::LetterRreh),
'ڒ' => Ok(Arabic::LetterRehWithSmallV),
'ړ' => Ok(Arabic::LetterRehWithRing),
'ڔ' => Ok(Arabic::LetterRehWithDotBelow),
'ڕ' => Ok(Arabic::LetterRehWithSmallVBelow),
'ږ' => Ok(Arabic::LetterRehWithDotBelowAndDotAbove),
'ڗ' => Ok(Arabic::LetterRehWithTwoDotsAbove),
'ژ' => Ok(Arabic::LetterJeh),
'ڙ' => Ok(Arabic::LetterRehWithFourDotsAbove),
'ښ' => Ok(Arabic::LetterSeenWithDotBelowAndDotAbove),
'ڛ' => Ok(Arabic::LetterSeenWithThreeDotsBelow),
'ڜ' => Ok(Arabic::LetterSeenWithThreeDotsBelowAndThreeDotsAbove),
'ڝ' => Ok(Arabic::LetterSadWithTwoDotsBelow),
'ڞ' => Ok(Arabic::LetterSadWithThreeDotsAbove),
'ڟ' => Ok(Arabic::LetterTahWithThreeDotsAbove),
'ڠ' => Ok(Arabic::LetterAinWithThreeDotsAbove),
'ڡ' => Ok(Arabic::LetterDotlessFeh),
'ڢ' => Ok(Arabic::LetterFehWithDotMovedBelow),
'ڣ' => Ok(Arabic::LetterFehWithDotBelow),
'ڤ' => Ok(Arabic::LetterVeh),
'ڥ' => Ok(Arabic::LetterFehWithThreeDotsBelow),
'ڦ' => Ok(Arabic::LetterPeheh),
'ڧ' => Ok(Arabic::LetterQafWithDotAbove),
'ڨ' => Ok(Arabic::LetterQafWithThreeDotsAbove),
'ک' => Ok(Arabic::LetterKeheh),
'ڪ' => Ok(Arabic::LetterSwashKaf),
'ګ' => Ok(Arabic::LetterKafWithRing),
'ڬ' => Ok(Arabic::LetterKafWithDotAbove),
'ڭ' => Ok(Arabic::LetterNg),
'ڮ' => Ok(Arabic::LetterKafWithThreeDotsBelow),
'گ' => Ok(Arabic::LetterGaf),
'ڰ' => Ok(Arabic::LetterGafWithRing),
'ڱ' => Ok(Arabic::LetterNgoeh),
'ڲ' => Ok(Arabic::LetterGafWithTwoDotsBelow),
'ڳ' => Ok(Arabic::LetterGueh),
'ڴ' => Ok(Arabic::LetterGafWithThreeDotsAbove),
'ڵ' => Ok(Arabic::LetterLamWithSmallV),
'ڶ' => Ok(Arabic::LetterLamWithDotAbove),
'ڷ' => Ok(Arabic::LetterLamWithThreeDotsAbove),
'ڸ' => Ok(Arabic::LetterLamWithThreeDotsBelow),
'ڹ' => Ok(Arabic::LetterNoonWithDotBelow),
'ں' => Ok(Arabic::LetterNoonGhunna),
'ڻ' => Ok(Arabic::LetterRnoon),
'ڼ' => Ok(Arabic::LetterNoonWithRing),
'ڽ' => Ok(Arabic::LetterNoonWithThreeDotsAbove),
'ھ' => Ok(Arabic::LetterHehDoachashmee),
'ڿ' => Ok(Arabic::LetterTchehWithDotAbove),
'ۀ' => Ok(Arabic::LetterHehWithYehAbove),
'ہ' => Ok(Arabic::LetterHehGoal),
'ۂ' => Ok(Arabic::LetterHehGoalWithHamzaAbove),
'ۃ' => Ok(Arabic::LetterTehMarbutaGoal),
'ۄ' => Ok(Arabic::LetterWawWithRing),
'ۅ' => Ok(Arabic::LetterKirghizOe),
'ۆ' => Ok(Arabic::LetterOe),
'ۇ' => Ok(Arabic::LetterU),
'ۈ' => Ok(Arabic::LetterYu),
'ۉ' => Ok(Arabic::LetterKirghizYu),
'ۊ' => Ok(Arabic::LetterWawWithTwoDotsAbove),
'ۋ' => Ok(Arabic::LetterVe),
'ی' => Ok(Arabic::LetterFarsiYeh),
'ۍ' => Ok(Arabic::LetterYehWithTail),
'ێ' => Ok(Arabic::LetterYehWithSmallV),
'ۏ' => Ok(Arabic::LetterWawWithDotAbove),
'ې' => Ok(Arabic::LetterE),
'ۑ' => Ok(Arabic::LetterYehWithThreeDotsBelow),
'ے' => Ok(Arabic::LetterYehBarree),
'ۓ' => Ok(Arabic::LetterYehBarreeWithHamzaAbove),
'۔' => Ok(Arabic::FullStop),
'ە' => Ok(Arabic::LetterAe),
'ۖ' => Ok(Arabic::SmallHighLigatureSadWithLamWithAlefMaksura),
'ۗ' => Ok(Arabic::SmallHighLigatureQafWithLamWithAlefMaksura),
'ۘ' => Ok(Arabic::SmallHighMeemInitialForm),
'ۙ' => Ok(Arabic::SmallHighLamAlef),
'ۚ' => Ok(Arabic::SmallHighJeem),
'ۛ' => Ok(Arabic::SmallHighThreeDots),
'ۜ' => Ok(Arabic::SmallHighSeen),
'' => Ok(Arabic::EndOfAyah),
'۞' => Ok(Arabic::StartOfRubElHizb),
'۟' => Ok(Arabic::SmallHighRoundedZero),
'۠' => Ok(Arabic::SmallHighUprightRectangularZero),
'ۡ' => Ok(Arabic::SmallHighDotlessHeadOfKhah),
'ۢ' => Ok(Arabic::SmallHighMeemIsolatedForm),
'ۣ' => Ok(Arabic::SmallLowSeen),
'ۤ' => Ok(Arabic::SmallHighMadda),
'ۥ' => Ok(Arabic::SmallWaw),
'ۦ' => Ok(Arabic::SmallYeh),
'ۧ' => Ok(Arabic::SmallHighYeh),
'ۨ' => Ok(Arabic::SmallHighNoon),
'۩' => Ok(Arabic::PlaceOfSajdah),
'۪' => Ok(Arabic::EmptyCentreLowStop),
'۫' => Ok(Arabic::EmptyCentreHighStop),
'۬' => Ok(Arabic::RoundedHighStopWithFilledCentre),
'ۭ' => Ok(Arabic::SmallLowMeem),
'ۮ' => Ok(Arabic::LetterDalWithInvertedV),
'ۯ' => Ok(Arabic::LetterRehWithInvertedV),
'۰' => Ok(Arabic::ExtendedDashIndicDigitZero),
'۱' => Ok(Arabic::ExtendedDashIndicDigitOne),
'۲' => Ok(Arabic::ExtendedDashIndicDigitTwo),
'۳' => Ok(Arabic::ExtendedDashIndicDigitThree),
'۴' => Ok(Arabic::ExtendedDashIndicDigitFour),
'۵' => Ok(Arabic::ExtendedDashIndicDigitFive),
'۶' => Ok(Arabic::ExtendedDashIndicDigitSix),
'۷' => Ok(Arabic::ExtendedDashIndicDigitSeven),
'۸' => Ok(Arabic::ExtendedDashIndicDigitEight),
'۹' => Ok(Arabic::ExtendedDashIndicDigitNine),
'ۺ' => Ok(Arabic::LetterSheenWithDotBelow),
'ۻ' => Ok(Arabic::LetterDadWithDotBelow),
'ۼ' => Ok(Arabic::LetterGhainWithDotBelow),
'۽' => Ok(Arabic::SignSindhiAmpersand),
'۾' => Ok(Arabic::SignSindhiPostpositionMen),
_ => Err(()),
}
}
}
impl Into<u32> for Arabic {
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 Arabic {
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 Arabic {
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 Arabic {
pub fn new() -> Self {
Arabic::NumberSign
}
pub fn name(&self) -> String {
let s = std::format!("Arabic{:#?}", self);
string_morph::to_sentence_case(&s)
}
}