pub struct PropertyNamesShortBorrowed<'a, T: NamedEnumeratedProperty> { /* private fields */ }
Expand description
A borrowed wrapper around property value name-to-enum data, returned by
PropertyNamesShort::as_borrowed()
. More efficient to query.
Implementations§
Source§impl<'a, T: NamedEnumeratedProperty> PropertyNamesShortBorrowed<'a, T>
impl<'a, T: NamedEnumeratedProperty> PropertyNamesShortBorrowed<'a, T>
Sourcepub fn get(self, property: T) -> Option<&'a str>
pub fn get(self, property: T) -> Option<&'a str>
Get the property name given a value
§Example
use icu::properties::props::CanonicalCombiningClass;
use icu::properties::PropertyNamesShort;
let lookup = PropertyNamesShort::<CanonicalCombiningClass>::new();
assert_eq!(lookup.get(CanonicalCombiningClass::KanaVoicing), Some("KV"));
assert_eq!(lookup.get(CanonicalCombiningClass::AboveLeft), Some("AL"));
Source§impl PropertyNamesShortBorrowed<'_, Script>
impl PropertyNamesShortBorrowed<'_, Script>
Sourcepub fn get_locale_script(self, property: Script) -> Option<Script>
pub fn get_locale_script(self, property: Script) -> Option<Script>
Gets the “name” of a script property as a icu::locale::subtags::Script
.
This method is available only on PropertyNamesShortBorrowed<Script>
.
§Example
use icu::locale::subtags::script;
use icu::properties::props::Script;
use icu::properties::PropertyNamesShort;
let lookup = PropertyNamesShort::<Script>::new();
assert_eq!(
lookup.get_locale_script(Script::Brahmi),
Some(script!("Brah"))
);
assert_eq!(
lookup.get_locale_script(Script::Hangul),
Some(script!("Hang"))
);
For the reverse direction, use property parsing as normal:
use icu::locale::subtags::script;
use icu::properties::props::Script;
use icu::properties::PropertyParser;
let parser = PropertyParser::<Script>::new();
assert_eq!(
parser.get_strict(script!("Brah").as_str()),
Some(Script::Brahmi)
);
assert_eq!(
parser.get_strict(script!("Hang").as_str()),
Some(Script::Hangul)
);
Source§impl<T: NamedEnumeratedProperty> PropertyNamesShortBorrowed<'static, T>
impl<T: NamedEnumeratedProperty> PropertyNamesShortBorrowed<'static, T>
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new instance of PropertyNamesShortBorrowed<T>
.
✨ Enabled with the compiled_data
Cargo feature.
Sourcepub fn static_to_owned(self) -> PropertyNamesShort<T>
pub fn static_to_owned(self) -> PropertyNamesShort<T>
Cheaply converts a PropertyNamesShortBorrowed<'static>
into a PropertyNamesShort
.
Note: Due to branching and indirection, using PropertyNamesShort
might inhibit some
compile-time optimizations that are possible with PropertyNamesShortBorrowed
.
This is currently not const
unlike other static_to_owned()
functions since it needs
const traits to do that safely
Trait Implementations§
Source§impl<T: NamedEnumeratedProperty> Clone for PropertyNamesShortBorrowed<'_, T>
impl<T: NamedEnumeratedProperty> Clone for PropertyNamesShortBorrowed<'_, T>
Source§impl<'a, T: Debug + NamedEnumeratedProperty> Debug for PropertyNamesShortBorrowed<'a, T>where
T::DataStructShortBorrowed<'a>: Debug,
impl<'a, T: Debug + NamedEnumeratedProperty> Debug for PropertyNamesShortBorrowed<'a, T>where
T::DataStructShortBorrowed<'a>: Debug,
Source§impl<T: NamedEnumeratedProperty> Default for PropertyNamesShortBorrowed<'static, T>
impl<T: NamedEnumeratedProperty> Default for PropertyNamesShortBorrowed<'static, T>
impl<T: NamedEnumeratedProperty> Copy for PropertyNamesShortBorrowed<'_, T>
Auto Trait Implementations§
impl<'a, T> Freeze for PropertyNamesShortBorrowed<'a, T>
impl<'a, T> RefUnwindSafe for PropertyNamesShortBorrowed<'a, T>
impl<'a, T> Send for PropertyNamesShortBorrowed<'a, T>
impl<'a, T> Sync for PropertyNamesShortBorrowed<'a, T>
impl<'a, T> Unpin for PropertyNamesShortBorrowed<'a, T>
impl<'a, T> UnwindSafe for PropertyNamesShortBorrowed<'a, 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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ErasedDestructor for Twhere
T: 'static,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 8 bytes