ucd_parse/
lib.rs

1/*!
2A library for parsing the Unicode character database.
3*/
4
5#![deny(missing_docs)]
6
7pub 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
16pub 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
43macro_rules! err {
44    ($($tt:tt)*) => {
45        Err(crate::error::Error::parse(format!($($tt)*)))
46    }
47}
48
49macro_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
59pub mod extracted;
60
61mod common;
62mod error;
63
64mod age;
65mod arabic_shaping;
66mod bidi_mirroring_glyph;
67mod case_folding;
68mod core_properties;
69mod derived_normalization_properties;
70mod east_asian_width;
71mod emoji_properties;
72mod grapheme_cluster_break;
73mod jamo_short_name;
74mod line_break;
75mod name_aliases;
76mod prop_list;
77mod property_aliases;
78mod property_value_aliases;
79mod script_extensions;
80mod scripts;
81mod sentence_break;
82mod special_casing;
83mod unicode_data;
84mod word_break;