pub struct PropertyValueNameToEnumMapper<T> {
map: DataPayload<ErasedNameToEnumMapV1Marker>,
markers: PhantomData<fn() -> T>,
}
Expand description
A struct capable of looking up a property value from a string name.
Access its data by calling Self::as_borrowed()
and using the methods on
PropertyValueNameToEnumMapperBorrowed
.
The name can be a short name (Lu
), a long name(Uppercase_Letter
),
or an alias.
Property names can be looked up using “strict” matching (looking for a name that matches exactly), or “loose matching”, where the name is allowed to deviate in terms of ASCII casing, whitespace, underscores, and hyphens.
§Example
use icu::properties::GeneralCategory;
let lookup = GeneralCategory::name_to_enum_mapper();
// short name for value
assert_eq!(
lookup.get_strict("Lu"),
Some(GeneralCategory::UppercaseLetter)
);
assert_eq!(
lookup.get_strict("Pd"),
Some(GeneralCategory::DashPunctuation)
);
// long name for value
assert_eq!(
lookup.get_strict("Uppercase_Letter"),
Some(GeneralCategory::UppercaseLetter)
);
assert_eq!(
lookup.get_strict("Dash_Punctuation"),
Some(GeneralCategory::DashPunctuation)
);
// name has incorrect casing
assert_eq!(lookup.get_strict("dashpunctuation"), None);
// loose matching of name
assert_eq!(
lookup.get_loose("dash-punctuation"),
Some(GeneralCategory::DashPunctuation)
);
// fake property
assert_eq!(lookup.get_strict("Animated_Gif"), None);
Fields§
§map: DataPayload<ErasedNameToEnumMapV1Marker>
§markers: PhantomData<fn() -> T>
Implementations§
source§impl<T: TrieValue> PropertyValueNameToEnumMapper<T>
impl<T: TrieValue> PropertyValueNameToEnumMapper<T>
sourcepub fn as_borrowed(&self) -> PropertyValueNameToEnumMapperBorrowed<'_, T>
pub fn as_borrowed(&self) -> PropertyValueNameToEnumMapperBorrowed<'_, T>
Construct a borrowed version of this type that can be queried.
This avoids a potential small underlying cost per API call (like get_strict()
) by consolidating it
up front.
pub(crate) fn from_data<M>(data: DataPayload<M>) -> Selfwhere
M: DataMarker<Yokeable = PropertyValueNameToEnumMapV1<'static>>,
Trait Implementations§
Auto Trait Implementations§
impl<T> Freeze for PropertyValueNameToEnumMapper<T>
impl<T> RefUnwindSafe for PropertyValueNameToEnumMapper<T>
impl<T> !Send for PropertyValueNameToEnumMapper<T>
impl<T> !Sync for PropertyValueNameToEnumMapper<T>
impl<T> Unpin for PropertyValueNameToEnumMapper<T>
impl<T> UnwindSafe for PropertyValueNameToEnumMapper<T>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more