pub struct Unicode {
pub keywords: Keywords,
pub attributes: Attributes,
}
Expand description
Unicode Extensions provide information about user preferences in a given locale.
A list of Unicode BCP47 U Extensions
as defined in Unicode Locale Identifier
specification.
Unicode extensions provide subtags that specify language and/or locale-based behavior
or refinements to language tags, according to work done by the Unicode Consortium.
(See RFC 6067
for details).
§Examples
use icu::locale::extensions::unicode::{key, value};
use icu::locale::Locale;
let loc: Locale =
"de-u-hc-h12-ca-buddhist".parse().expect("Parsing failed.");
assert_eq!(
loc.extensions.unicode.keywords.get(&key!("ca")),
Some(&value!("buddhist"))
);
Fields§
§keywords: Keywords
The key-value pairs present in this locale extension, with each extension key subtag associated to its provided value subtag.
attributes: Attributes
A canonically ordered sequence of single standalone subtags for this locale extension.
Implementations§
source§impl Unicode
impl Unicode
sourcepub fn try_from_str(s: &str) -> Result<Unicode, ParseError>
pub fn try_from_str(s: &str) -> Result<Unicode, ParseError>
A constructor which takes a str slice, parses it and
produces a well-formed Unicode
.
sourcepub fn try_from_utf8(code_units: &[u8]) -> Result<Unicode, ParseError>
pub fn try_from_utf8(code_units: &[u8]) -> Result<Unicode, ParseError>
sourcepub fn clear(&mut self)
pub fn clear(&mut self)
Clears all Unicode extension keywords and attributes, effectively removing the Unicode extension.
§Example
use icu::locale::Locale;
let mut loc: Locale =
"und-t-mul-u-hello-ca-buddhist-hc-h12".parse().unwrap();
loc.extensions.unicode.clear();
assert_eq!(loc, "und-t-mul".parse().unwrap());
Trait Implementations§
source§impl Display for Unicode
impl Display for Unicode
This trait is implemented for compatibility with fmt!
.
To create a string, [Writeable::write_to_string
] is usually more efficient.
source§impl Writeable for Unicode
impl Writeable for Unicode
source§fn write_to<W>(&self, sink: &mut W) -> Result<(), Error>
fn write_to<W>(&self, sink: &mut W) -> Result<(), Error>
write_to_parts
, and discards any
Part
annotations.source§fn writeable_length_hint(&self) -> LengthHint
fn writeable_length_hint(&self) -> LengthHint
source§fn write_to_parts<S>(&self, sink: &mut S) -> Result<(), Error>where
S: PartsWrite + ?Sized,
fn write_to_parts<S>(&self, sink: &mut S) -> Result<(), Error>where
S: PartsWrite + ?Sized,
Part
annotations to the given sink. Errors from the
sink are bubbled up. The default implementation delegates to write_to
,
and doesn’t produce any Part
annotations.impl Eq for Unicode
impl StructuralPartialEq for Unicode
Auto Trait Implementations§
impl Freeze for Unicode
impl RefUnwindSafe for Unicode
impl Send for Unicode
impl Sync for Unicode
impl Unpin for Unicode
impl UnwindSafe for Unicode
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,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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