pub struct Other {
ext: u8,
keys: ShortBoxSlice<Subtag>,
}Expand description
A list of Other Use Extensions as defined in Unicode Locale Identifier specification.
Those extensions are treated as a pass-through, and no Unicode related behavior depends on them.
§Examples
use icu::locale::extensions::other::Other;
use icu::locale::subtags::Subtag;
let subtag1: Subtag = "foo".parse().expect("Failed to parse a Subtag.");
let subtag2: Subtag = "bar".parse().expect("Failed to parse a Subtag.");
let other = Other::from_vec_unchecked(b'a', vec![subtag1, subtag2]);
assert_eq!(&other.to_string(), "a-foo-bar");Fields§
§ext: u8§keys: ShortBoxSlice<Subtag>Implementations§
Source§impl Other
impl Other
Sourcepub fn try_from_str(s: &str) -> Result<Self, ParseError>
pub fn try_from_str(s: &str) -> Result<Self, ParseError>
A constructor which takes a str slice, parses it and
produces a well-formed Other.
✨ Enabled with the alloc Cargo feature.
Sourcepub fn try_from_utf8(code_units: &[u8]) -> Result<Self, ParseError>
pub fn try_from_utf8(code_units: &[u8]) -> Result<Self, ParseError>
✨ Enabled with the alloc Cargo feature.
Sourcepub fn from_vec_unchecked(ext: u8, keys: Vec<Subtag>) -> Self
pub fn from_vec_unchecked(ext: u8, keys: Vec<Subtag>) -> Self
A constructor which takes a pre-sorted list of Subtag.
✨ Enabled with the alloc Cargo feature.
§Panics
Panics if ext is not ASCII alphanumeric.
§Examples
use icu::locale::extensions::other::Other;
use icu::locale::subtags::Subtag;
let subtag1: Subtag = "foo".parse().expect("Failed to parse a Subtag.");
let subtag2: Subtag = "bar".parse().expect("Failed to parse a Subtag.");
let other = Other::from_vec_unchecked(b'a', vec![subtag1, subtag2]);
assert_eq!(&other.to_string(), "a-foo-bar");pub(crate) fn from_short_slice_unchecked( ext: u8, keys: ShortBoxSlice<Subtag>, ) -> Self
pub(crate) fn try_from_iter( ext: u8, iter: &mut SubtagIterator<'_>, ) -> Result<Self, ParseError>
Sourcepub fn get_ext_str(&self) -> &str
pub fn get_ext_str(&self) -> &str
Gets the tag character for this extension as a &str.
§Examples
use icu::locale::Locale;
let loc: Locale = "und-a-hello-world".parse().unwrap();
let other_ext = &loc.extensions.other[0];
assert_eq!(other_ext.get_ext_str(), "a");Sourcepub fn get_ext(&self) -> char
pub fn get_ext(&self) -> char
Gets the tag character for this extension as a char.
§Examples
use icu::locale::Locale;
let loc: Locale = "und-a-hello-world".parse().unwrap();
let other_ext = &loc.extensions.other[0];
assert_eq!(other_ext.get_ext(), 'a');Sourcepub fn get_ext_byte(&self) -> u8
pub fn get_ext_byte(&self) -> u8
Gets the tag character for this extension as a byte.
§Examples
use icu::locale::Locale;
let loc: Locale = "und-a-hello-world".parse().unwrap();
let other_ext = &loc.extensions.other[0];
assert_eq!(other_ext.get_ext_byte(), b'a');pub(crate) fn for_each_subtag_str<E, F>( &self, f: &mut F, with_ext: bool, ) -> Result<(), E>
Trait Implementations§
Source§impl Display for Other
This trait is implemented for compatibility with fmt!.
To create a string, [Writeable::write_to_string] is usually more efficient.
impl Display for Other
This trait is implemented for compatibility with fmt!.
To create a string, [Writeable::write_to_string] is usually more efficient.
Source§impl FromStr for Other
Available on crate feature alloc only.✨ Enabled with the alloc Cargo feature.
impl FromStr for Other
alloc only.✨ Enabled with the alloc Cargo feature.
Source§impl Ord for Other
impl Ord for Other
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialOrd for Other
impl PartialOrd for Other
Source§impl Writeable for Other
impl Writeable for Other
Source§fn write_to<W: Write + ?Sized>(&self, sink: &mut W) -> Result
fn write_to<W: Write + ?Sized>(&self, sink: &mut W) -> Result
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.