//! 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`](https://docs.rs/icu_properties/latest/icu_properties/)) //! and as part of the [`icu`](https://docs.rs/icu/latest/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 //! ``` //! //! # Harfbuzz //! //! The `harfbuzz_traits` Cargo feature can be used to add implementations of the [`harfbuzz_traits`] to //! `CodePointMap<GeneralCategory>`, `CodePointMap<BidiMirroringGlyph>`, and to enable the //! [`script::HarfbuzzScriptData`] type. //! //! [`ICU4X`]: ../icu/index.html //! [Unicode Properties]: https://unicode-org.github.io/icu/userguide/strings/properties.html //! [`CodePointSetData`]: crate::CodePointSetData //! [`CodePointMapData`]: crate::CodePointMapData
#[cfg(feature = "alloc")] externcrate alloc;
mod code_point_set; pubuse code_point_set::{CodePointSetData, CodePointSetDataBorrowed}; mod code_point_map; pubuse code_point_map::{CodePointMapData, CodePointMapDataBorrowed}; mod emoji; pubuse emoji::{EmojiSetData, EmojiSetDataBorrowed}; mod names; pubuse names::{
PropertyNamesLong, PropertyNamesLongBorrowed, PropertyNamesShort, PropertyNamesShortBorrowed,
PropertyParser, PropertyParserBorrowed,
}; mod runtime;
// NOTE: The Pernosco debugger has special knowledge // of the `CanonicalCombiningClass` struct inside the `props` // module. Please do not change the crate-module-qualified // name of that struct without coordination. pubmod props; pubmod provider; pubmod script;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.