| 1 | // This file is part of ICU4X. For terms of use, please see the file |
| 2 | // called LICENSE at the top level of the ICU4X source tree |
| 3 | // (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ). |
| 4 | |
| 5 | //! This module provides a data structure for an time-efficient lookup of values |
| 6 | //! associated to code points. |
| 7 | //! |
| 8 | //! It is an implementation of the existing [ICU4C UCPTrie](https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/ucptrie_8h.html) |
| 9 | //! / [ICU4J CodePointTrie](https://unicode-org.github.io/icu-docs/apidoc/dev/icu4j/) API. |
| 10 | //! |
| 11 | //! # Architecture |
| 12 | //! |
| 13 | //! ICU4X [`CodePointTrie`] is designed to provide a read-only view of [`CodePointTrie`] data that is exported |
| 14 | //! from ICU4C. Detailed information about the design of the data structure can be found in the documentation |
| 15 | //! for the [`CodePointTrie`] struct. |
| 16 | //! |
| 17 | //! # Examples |
| 18 | //! |
| 19 | //! ## Querying a `CodePointTrie` |
| 20 | //! |
| 21 | //! ``` |
| 22 | //! use icu::collections::codepointtrie::planes; |
| 23 | //! let trie = planes::get_planes_trie(); |
| 24 | //! |
| 25 | //! assert_eq!(0, trie.get32(0x41)); // 'A' as u32 |
| 26 | //! assert_eq!(0, trie.get32(0x13E0)); // 'Ꮰ' as u32 |
| 27 | //! assert_eq!(1, trie.get32(0x10044)); // '𐁄' as u32 |
| 28 | //! ``` |
| 29 | //! |
| 30 | //! [`ICU4X`]: ../icu/index.html |
| 31 | |
| 32 | extern crate alloc; |
| 33 | |
| 34 | mod cptrie; |
| 35 | mod error; |
| 36 | mod impl_const; |
| 37 | pub mod planes; |
| 38 | |
| 39 | #[cfg (feature = "serde" )] |
| 40 | pub mod toml; |
| 41 | |
| 42 | #[cfg (feature = "serde" )] |
| 43 | mod serde; |
| 44 | |
| 45 | pub use cptrie::CodePointMapRange; |
| 46 | pub use cptrie::CodePointMapRangeIterator; |
| 47 | pub use cptrie::CodePointTrie; |
| 48 | pub use cptrie::CodePointTrieHeader; |
| 49 | pub use cptrie::TrieType; |
| 50 | pub use cptrie::TrieValue; |
| 51 | pub use error::Error as CodePointTrieError; |
| 52 | |
| 53 | #[doc (no_inline)] |
| 54 | pub use CodePointTrieError as Error; |
| 55 | |