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 | |