Struct icu_properties::maps::CodePointMapData
source · pub struct CodePointMapData<T: TrieValue> {
data: DataPayload<ErasedMaplikeMarker<T>>,
}
Expand description
A wrapper around code point map data. It is returned by APIs that return Unicode
property data in a map-like form, ex: enumerated property value data keyed
by code point. Access its data via the borrowed version,
CodePointMapDataBorrowed
.
Fields§
§data: DataPayload<ErasedMaplikeMarker<T>>
Implementations§
source§impl<T: TrieValue> CodePointMapData<T>
impl<T: TrieValue> CodePointMapData<T>
sourcepub fn as_borrowed(&self) -> CodePointMapDataBorrowed<'_, T>
pub fn as_borrowed(&self) -> CodePointMapDataBorrowed<'_, T>
Construct a borrowed version of this type that can be queried.
This avoids a potential small underlying cost per API call (like get()
) by consolidating it
up front.
This owned version if returned by functions that use a runtime data provider.
sourcepub fn try_into_converted<P>(self) -> Result<CodePointMapData<P>, ZeroVecError>where
P: TrieValue,
pub fn try_into_converted<P>(self) -> Result<CodePointMapData<P>, ZeroVecError>where
P: TrieValue,
Convert this map to a map around another type
Typically useful for type-erasing maps into maps around integers.
§Panics
Will panic if T and P are different sizes
§Example
use icu::properties::{maps, GeneralCategory};
let data = maps::general_category().static_to_owned();
let gc = data.try_into_converted::<u8>().unwrap();
let gc = gc.as_borrowed();
assert_eq!(gc.get('木'), GeneralCategory::OtherLetter as u8); // U+6728
assert_eq!(gc.get('🎃'), GeneralCategory::OtherSymbol as u8); // U+1F383 JACK-O-LANTERN
sourcepub fn from_data<M>(data: DataPayload<M>) -> Selfwhere
M: DataMarker<Yokeable = PropertyCodePointMapV1<'static, T>>,
pub fn from_data<M>(data: DataPayload<M>) -> Selfwhere
M: DataMarker<Yokeable = PropertyCodePointMapV1<'static, T>>,
Construct a new one from loaded data
Typically it is preferable to use getters like load_general_category()
instead
sourcepub fn from_code_point_trie(trie: CodePointTrie<'static, T>) -> Self
pub fn from_code_point_trie(trie: CodePointTrie<'static, T>) -> Self
Construct a new one an owned CodePointTrie
sourcepub fn as_code_point_trie(&self) -> Option<&CodePointTrie<'_, T>>
pub fn as_code_point_trie(&self) -> Option<&CodePointTrie<'_, T>>
Convert this type to a CodePointTrie
as a borrowed value.
The data backing this is extensible and supports multiple implementations.
Currently it is always CodePointTrie
; however in the future more backends may be
added, and users may select which at data generation time.
This method returns an Option
in order to return None
when the backing data provider
cannot return a CodePointTrie
, or cannot do so within the expected constant time
constraint.
sourcepub fn to_code_point_trie(&self) -> CodePointTrie<'_, T>
pub fn to_code_point_trie(&self) -> CodePointTrie<'_, T>
Convert this type to a CodePointTrie
, borrowing if possible,
otherwise allocating a new CodePointTrie
.
The data backing this is extensible and supports multiple implementations.
Currently it is always CodePointTrie
; however in the future more backends may be
added, and users may select which at data generation time.
The performance of the conversion to this specific return type will vary
depending on the data structure that is backing self
.