pub struct CodePointMapData<T: TrieValue> { /* private fields */ }
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.

Implementations§

source§

impl<T: TrieValue> CodePointMapData<T>

source

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.

Example
use icu::properties::{maps, GeneralCategory};
use icu_collections::codepointtrie::CodePointTrie;

let data =
    maps::load_general_category(&icu_testdata::unstable())
        .expect("The data should be valid");

let gc = data.as_borrowed();

assert_eq!(gc.get('木'), GeneralCategory::OtherLetter);  // U+6728
assert_eq!(gc.get('🎃'), GeneralCategory::OtherSymbol);  // U+1F383 JACK-O-LANTERN
source

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};
use icu_collections::codepointtrie::CodePointTrie;

let data =
    maps::load_general_category(&icu_testdata::unstable())
        .expect("The data should be valid");

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
source

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

source

pub fn from_code_point_trie(trie: CodePointTrie<'static, T>) -> Self

Construct a new one an owned CodePointTrie

source

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.

source

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.

Trait Implementations§

source§

impl<T: Debug + TrieValue> Debug for CodePointMapData<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T> RefUnwindSafe for CodePointMapData<T>where T: RefUnwindSafe, <T as AsULE>::ULE: RefUnwindSafe,

§

impl<T> !Send for CodePointMapData<T>

§

impl<T> !Sync for CodePointMapData<T>

§

impl<T> Unpin for CodePointMapData<T>where T: Unpin, <T as AsULE>::ULE: Unpin,

§

impl<T> UnwindSafe for CodePointMapData<T>where T: UnwindSafe, <T as AsULE>::ULE: UnwindSafe + RefUnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> ErasedDestructor for Twhere T: 'static,

source§

impl<T> MaybeSendSync for T