1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//! Unicode rune analysis driven by the official Unicode Character Database
//! (UCD).
//!
//! Character properties are compiled directly into Rust `match` dispatch by an
//! offline code generator (see `codegen/`), so lookups are `const fn`, allocate
//! nothing, and require no runtime initialization.
//!
//! # Range tiers
//!
//! Cargo features select how much of the codepoint space is compiled in, trading
//! coverage for binary size. The tiers are nested:
//!
//! | feature | codepoints compiled |
//! |----------|----------------------------|
//! | `ascii` | `U+0000..=U+007F` |
//! | `latin1` | `U+0000..=U+00FF` |
//! | `bmp` | `U+0000..=U+FFFF` (default) |
//! | `full` | `U+0000..=U+10FFFF` |
//!
//! Any codepoint outside the compiled range — like a genuinely unassigned one —
//! resolves to the neutral default: [`GeneralCategory::Unassigned`] / `false`.
//!
//! # Examples
//!
//! ```
//! use intl::unicode::{general_category, GeneralCategory, CharExt};
//!
//! assert_eq!(general_category('A'), GeneralCategory::UppercaseLetter);
//! assert!('A'.is_uppercase());
//! assert!('٣'.is_numeric()); // Arabic-Indic digit three
//! assert!(!'\u{0378}'.is_assigned()); // a reserved codepoint
//! ```
pub use ;
pub use UNICODE_VERSION;
pub use ;