16 releases (stable)
2.0.0-beta1 | Nov 23, 2024 |
---|---|
1.5.1 | Jun 24, 2024 |
1.5.0 | May 28, 2024 |
1.4.0 | Nov 16, 2023 |
0.4.0 | Nov 2, 2021 |
#119 in Internationalization (i18n)
3,752,310 downloads per month
Used in 28,138 crates
(24 directly)
2MB
30K
SLoC
icu_properties
Definitions of Unicode Properties and APIs for retrieving property data in an appropriate data structure.
This module is published as its own crate (icu_properties
)
and as part of the icu
crate. See the latter for more details on the ICU4X project.
APIs that return a CodePointSetData
exist for binary properties and certain enumerated
properties.
APIs that return a CodePointMapData
exist for certain enumerated properties.
Examples
Property data as CodePointSetData
s
use icu::properties::{CodePointSetData, CodePointMapData};
use icu::properties::props::{GeneralCategory, Emoji};
// A binary property as a `CodePointSetData`
assert!(CodePointSetData::new::<Emoji>().contains('🎃')); // U+1F383 JACK-O-LANTERN
assert!(!CodePointSetData::new::<Emoji>().contains('木')); // U+6728
// An individual enumerated property value as a `CodePointSetData`
let line_sep_data = CodePointMapData::<GeneralCategory>::new()
.get_set_for_value(GeneralCategory::LineSeparator);
let line_sep = line_sep_data.as_borrowed();
assert!(line_sep.contains('\u{2028}'));
assert!(!line_sep.contains('\u{2029}'));
Property data as CodePointMapData
s
use icu::properties::CodePointMapData;
use icu::properties::props::Script;
assert_eq!(CodePointMapData::<Script>::new().get('🎃'), Script::Common); // U+1F383 JACK-O-LANTERN
assert_eq!(CodePointMapData::<Script>::new().get('木'), Script::Han); // U+6728
More Information
For more information on development, authorship, contributing etc. please visit ICU4X home page
.
Dependencies
~0.7–1.4MB
~28K SLoC