// This file is part of ICU4X. For terms of use, please see the file // called LICENSE at the top level of the ICU4X source tree // (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ). //! 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::().contains('🎃')); // U+1F383 JACK-O-LANTERN //! assert!(!CodePointSetData::new::().contains('木')); // U+6728 //! //! // An individual enumerated property value as a `CodePointSetData` //! //! let line_sep_data = CodePointMapData::::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::