@@ -609,6 +609,49 @@ macro_rules! ascii {
609
609
}
610
610
pub use ascii;
611
611
612
+ // TODO: this should probably live in a crate like unic or unicode-properties
613
+ const UNICODE_DECIMAL_VALUES : & [ char ] = & [
614
+ '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '٠' , '١' , '٢' , '٣' , '٤' , '٥' , '٦' , '٧' , '٨' ,
615
+ '٩' , '۰' , '۱' , '۲' , '۳' , '۴' , '۵' , '۶' , '۷' , '۸' , '۹' , '߀' , '߁' , '߂' , '߃' , '߄' , '߅' , '߆' , '߇' ,
616
+ '߈' , '߉' , '०' , '१' , '२' , '३' , '४' , '५' , '६' , '७' , '८' , '९' , '০' , '১' , '২' , '৩' , '৪' , '৫' , '৬' ,
617
+ '৭' , '৮' , '৯' , '੦' , '੧' , '੨' , '੩' , '੪' , '੫' , '੬' , '੭' , '੮' , '੯' , '૦' , '૧' , '૨' , '૩' , '૪' , '૫' ,
618
+ '૬' , '૭' , '૮' , '૯' , '୦' , '୧' , '୨' , '୩' , '୪' , '୫' , '୬' , '୭' , '୮' , '୯' , '௦' , '௧' , '௨' , '௩' , '௪' ,
619
+ '௫' , '௬' , '௭' , '௮' , '௯' , '౦' , '౧' , '౨' , '౩' , '౪' , '౫' , '౬' , '౭' , '౮' , '౯' , '೦' , '೧' , '೨' , '೩' ,
620
+ '೪' , '೫' , '೬' , '೭' , '೮' , '೯' , '൦' , '൧' , '൨' , '൩' , '൪' , '൫' , '൬' , '൭' , '൮' , '൯' , '෦' , '෧' , '෨' ,
621
+ '෩' , '෪' , '෫' , '෬' , '෭' , '෮' , '෯' , '๐' , '๑' , '๒' , '๓' , '๔' , '๕' , '๖' , '๗' , '๘' , '๙' , '໐' , '໑' ,
622
+ '໒' , '໓' , '໔' , '໕' , '໖' , '໗' , '໘' , '໙' , '༠' , '༡' , '༢' , '༣' , '༤' , '༥' , '༦' , '༧' , '༨' , '༩' , '၀' ,
623
+ '၁' , '၂' , '၃' , '၄' , '၅' , '၆' , '၇' , '၈' , '၉' , '႐' , '႑' , '႒' , '႓' , '႔' , '႕' , '႖' , '႗' , '႘' , '႙' ,
624
+ '០' , '១' , '២' , '៣' , '៤' , '៥' , '៦' , '៧' , '៨' , '៩' , '᠐' , '᠑' , '᠒' , '᠓' , '᠔' , '᠕' , '᠖' , '᠗' , '᠘' ,
625
+ '᠙' , '᥆' , '᥇' , '᥈' , '᥉' , '᥊' , '᥋' , '᥌' , '᥍' , '᥎' , '᥏' , '᧐' , '᧑' , '᧒' , '᧓' , '᧔' , '᧕' , '᧖' , '᧗' ,
626
+ '᧘' , '᧙' , '᪀' , '᪁' , '᪂' , '᪃' , '᪄' , '᪅' , '᪆' , '᪇' , '᪈' , '᪉' , '᪐' , '᪑' , '᪒' , '᪓' , '᪔' , '᪕' , '᪖' ,
627
+ '᪗' , '᪘' , '᪙' , '᭐' , '᭑' , '᭒' , '᭓' , '᭔' , '᭕' , '᭖' , '᭗' , '᭘' , '᭙' , '᮰' , '᮱' , '᮲' , '᮳' , '᮴' , '᮵' ,
628
+ '᮶' , '᮷' , '᮸' , '᮹' , '᱀' , '᱁' , '᱂' , '᱃' , '᱄' , '᱅' , '᱆' , '᱇' , '᱈' , '᱉' , '᱐' , '᱑' , '᱒' , '᱓' , '᱔' ,
629
+ '᱕' , '᱖' , '᱗' , '᱘' , '᱙' , '꘠' , '꘡' , '꘢' , '꘣' , '꘤' , '꘥' , '꘦' , '꘧' , '꘨' , '꘩' , '꣐' , '꣑' , '꣒' , '꣓' ,
630
+ '꣔' , '꣕' , '꣖' , '꣗' , '꣘' , '꣙' , '꤀' , '꤁' , '꤂' , '꤃' , '꤄' , '꤅' , '꤆' , '꤇' , '꤈' , '꤉' , '꧐' , '꧑' , '꧒' ,
631
+ '꧓' , '꧔' , '꧕' , '꧖' , '꧗' , '꧘' , '꧙' , '꧰' , '꧱' , '꧲' , '꧳' , '꧴' , '꧵' , '꧶' , '꧷' , '꧸' , '꧹' , '꩐' , '꩑' ,
632
+ '꩒' , '꩓' , '꩔' , '꩕' , '꩖' , '꩗' , '꩘' , '꩙' , '꯰' , '꯱' , '꯲' , '꯳' , '꯴' , '꯵' , '꯶' , '꯷' , '꯸' , '꯹' , '0' ,
633
+ '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '𐒠' , '𐒡' , '𐒢' , '𐒣' , '𐒤' , '𐒥' , '𐒦' , '𐒧' ,
634
+ '𐒨' , '𐒩' , '𑁦' , '𑁧' , '𑁨' , '𑁩' , '𑁪' , '𑁫' , '𑁬' , '𑁭' , '𑁮' , '𑁯' , '𑃰' , '𑃱' , '𑃲' , '𑃳' , '𑃴' , '𑃵' , '𑃶' ,
635
+ '𑃷' , '𑃸' , '𑃹' , '𑄶' , '𑄷' , '𑄸' , '𑄹' , '𑄺' , '𑄻' , '𑄼' , '𑄽' , '𑄾' , '𑄿' , '𑇐' , '𑇑' , '𑇒' , '𑇓' , '𑇔' , '𑇕' ,
636
+ '𑇖' , '𑇗' , '𑇘' , '𑇙' , '𑋰' , '𑋱' , '𑋲' , '𑋳' , '𑋴' , '𑋵' , '𑋶' , '𑋷' , '𑋸' , '𑋹' , '𑑐' , '𑑑' , '𑑒' , '𑑓' , '𑑔' ,
637
+ '𑑕' , '𑑖' , '𑑗' , '𑑘' , '𑑙' , '𑓐' , '𑓑' , '𑓒' , '𑓓' , '𑓔' , '𑓕' , '𑓖' , '𑓗' , '𑓘' , '𑓙' , '𑙐' , '𑙑' , '𑙒' , '𑙓' ,
638
+ '𑙔' , '𑙕' , '𑙖' , '𑙗' , '𑙘' , '𑙙' , '𑛀' , '𑛁' , '𑛂' , '𑛃' , '𑛄' , '𑛅' , '𑛆' , '𑛇' , '𑛈' , '𑛉' , '𑜰' , '𑜱' , '𑜲' ,
639
+ '𑜳' , '𑜴' , '𑜵' , '𑜶' , '𑜷' , '𑜸' , '𑜹' , '𑣠' , '𑣡' , '𑣢' , '𑣣' , '𑣤' , '𑣥' , '𑣦' , '𑣧' , '𑣨' , '𑣩' , '𑱐' , '𑱑' ,
640
+ '𑱒' , '𑱓' , '𑱔' , '𑱕' , '𑱖' , '𑱗' , '𑱘' , '𑱙' , '𑵐' , '𑵑' , '𑵒' , '𑵓' , '𑵔' , '𑵕' , '𑵖' , '𑵗' , '𑵘' , '𑵙' , '𖩠' ,
641
+ '𖩡' , '𖩢' , '𖩣' , '𖩤' , '𖩥' , '𖩦' , '𖩧' , '𖩨' , '𖩩' , '𖭐' , '𖭑' , '𖭒' , '𖭓' , '𖭔' , '𖭕' , '𖭖' , '𖭗' , '𖭘' , '𖭙' ,
642
+ '𝟎' , '𝟏' , '𝟐' , '𝟑' , '𝟒' , '𝟓' , '𝟔' , '𝟕' , '𝟖' , '𝟗' , '𝟘' , '𝟙' , '𝟚' , '𝟛' , '𝟜' , '𝟝' , '𝟞' , '𝟟' , '𝟠' ,
643
+ '𝟡' , '𝟢' , '𝟣' , '𝟤' , '𝟥' , '𝟦' , '𝟧' , '𝟨' , '𝟩' , '𝟪' , '𝟫' , '𝟬' , '𝟭' , '𝟮' , '𝟯' , '𝟰' , '𝟱' , '𝟲' , '𝟳' ,
644
+ '𝟴' , '𝟵' , '𝟶' , '𝟷' , '𝟸' , '𝟹' , '𝟺' , '𝟻' , '𝟼' , '𝟽' , '𝟾' , '𝟿' , '𞥐' , '𞥑' , '𞥒' , '𞥓' , '𞥔' , '𞥕' , '𞥖' ,
645
+ '𞥗' , '𞥘' , '𞥙' ,
646
+ ] ;
647
+
648
+ pub fn char_to_decimal ( ch : char ) -> Option < u8 > {
649
+ UNICODE_DECIMAL_VALUES
650
+ . binary_search ( & ch)
651
+ . ok ( )
652
+ . map ( |i| ( i % 10 ) as u8 )
653
+ }
654
+
612
655
#[ cfg( test) ]
613
656
mod tests {
614
657
use super :: * ;
0 commit comments