| 1 | /*! |
| 2 | A library for parsing the Unicode character database. |
| 3 | */ |
| 4 | |
| 5 | #![deny (missing_docs)] |
| 6 | |
| 7 | pub use crate::{ |
| 8 | common::{ |
| 9 | parse, parse_by_codepoint, parse_many_by_codepoint, |
| 10 | ucd_directory_version, Codepoint, CodepointIter, CodepointRange, |
| 11 | Codepoints, UcdFile, UcdFileByCodepoint, UcdLineParser, |
| 12 | }, |
| 13 | error::{Error, ErrorKind}, |
| 14 | }; |
| 15 | |
| 16 | pub use crate::{ |
| 17 | age::Age, |
| 18 | arabic_shaping::ArabicShaping, |
| 19 | bidi_mirroring_glyph::BidiMirroring, |
| 20 | case_folding::{CaseFold, CaseStatus}, |
| 21 | core_properties::CoreProperty, |
| 22 | derived_normalization_properties::DerivedNormalizationProperty, |
| 23 | east_asian_width::EastAsianWidth, |
| 24 | emoji_properties::EmojiProperty, |
| 25 | grapheme_cluster_break::{GraphemeClusterBreak, GraphemeClusterBreakTest}, |
| 26 | jamo_short_name::JamoShortName, |
| 27 | line_break::LineBreakTest, |
| 28 | name_aliases::{NameAlias, NameAliasLabel}, |
| 29 | prop_list::Property, |
| 30 | property_aliases::PropertyAlias, |
| 31 | property_value_aliases::PropertyValueAlias, |
| 32 | script_extensions::ScriptExtension, |
| 33 | scripts::Script, |
| 34 | sentence_break::{SentenceBreak, SentenceBreakTest}, |
| 35 | special_casing::SpecialCaseMapping, |
| 36 | unicode_data::{ |
| 37 | UnicodeData, UnicodeDataDecomposition, UnicodeDataDecompositionTag, |
| 38 | UnicodeDataExpander, UnicodeDataNumeric, |
| 39 | }, |
| 40 | word_break::{WordBreak, WordBreakTest}, |
| 41 | }; |
| 42 | |
| 43 | macro_rules! err { |
| 44 | ($($tt:tt)*) => { |
| 45 | Err(crate::error::Error::parse(format!($($tt)*))) |
| 46 | } |
| 47 | } |
| 48 | |
| 49 | macro_rules! regex { |
| 50 | ($re:literal $(,)?) => {{ |
| 51 | use regex_lite::Regex; |
| 52 | use std::sync::OnceLock; |
| 53 | |
| 54 | static RE: OnceLock<Regex> = OnceLock::new(); |
| 55 | RE.get_or_init(|| Regex::new($re).unwrap()) |
| 56 | }}; |
| 57 | } |
| 58 | |
| 59 | pub mod extracted; |
| 60 | |
| 61 | mod common; |
| 62 | mod error; |
| 63 | |
| 64 | mod age; |
| 65 | mod arabic_shaping; |
| 66 | mod bidi_mirroring_glyph; |
| 67 | mod case_folding; |
| 68 | mod core_properties; |
| 69 | mod derived_normalization_properties; |
| 70 | mod east_asian_width; |
| 71 | mod emoji_properties; |
| 72 | mod grapheme_cluster_break; |
| 73 | mod jamo_short_name; |
| 74 | mod line_break; |
| 75 | mod name_aliases; |
| 76 | mod prop_list; |
| 77 | mod property_aliases; |
| 78 | mod property_value_aliases; |
| 79 | mod script_extensions; |
| 80 | mod scripts; |
| 81 | mod sentence_break; |
| 82 | mod special_casing; |
| 83 | mod unicode_data; |
| 84 | mod word_break; |
| 85 | |