Struct icu::properties::CodePointMapData

source ·
pub struct CodePointMapData<T>
where 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> CodePointMapData<T>
where T: TrieValue,

source

pub const fn new() -> CodePointMapDataBorrowed<'static, T>

Creates a new CodePointMapData for a EnumeratedProperty.

See the documentation on EnumeratedProperty implementations for details.

Enabled with the compiled_data Cargo feature.

📚 Help choosing a constructor

source

pub fn try_new_unstable( provider: &(impl DataProvider<<T as EnumeratedProperty>::DataMarker> + ?Sized), ) -> Result<CodePointMapData<T>, DataError>

A version of Self::new that uses custom data provided by a DataProvider.

📚 Help choosing a constructor

⚠️ The bounds on provider may change over time, including in SemVer minor releases.
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.

This owned version if returned by functions that use a runtime data provider.

source

pub fn try_into_converted<P>(self) -> Result<CodePointMapData<P>, UleError>
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::CodePointMapData;
use icu::properties::props::GeneralCategory;

let data = CodePointMapData::<GeneralCategory>::new().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
source

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

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> Clone for CodePointMapData<T>
where T: Clone + TrieValue,

source§

fn clone(&self) -> CodePointMapData<T>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

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

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T> Freeze for CodePointMapData<T>
where T: Freeze,

§

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

§

impl<T> Send for CodePointMapData<T>
where T: Sync + Send, <T as AsULE>::ULE: Sync + Send,

§

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

§

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

§

impl<T> UnwindSafe for CodePointMapData<T>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

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> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

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

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

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

Performs the conversion.
source§

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

source§

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

The type returned in the event of a conversion error.
source§

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

Performs the conversion.
source§

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

source§

impl<T> MaybeSendSync for T
where T: Send + Sync,