pub struct Value(/* private fields */);
Expand description
A value used in a list of Keywords
.
The value has to be a sequence of one or more alphanumerical strings
separated by -
.
Each part of the sequence has to be no shorter than three characters and no
longer than 8.
§Examples
use icu::locale::extensions::unicode::{value, Value};
use writeable::assert_writeable_eq;
assert_writeable_eq!(value!("gregory"), "gregory");
assert_writeable_eq!(
"islamic-civil".parse::<Value>().unwrap(),
"islamic-civil"
);
// The value "true" has the special, empty string representation
assert_eq!(value!("true").to_string(), "");
Implementations§
Source§impl Value
impl Value
Sourcepub const fn as_single_subtag(&self) -> Option<&Subtag>
pub const fn as_single_subtag(&self) -> Option<&Subtag>
Returns a reference to a single Subtag
if the Value
contains exactly one
subtag, or None
otherwise.
§Examples
use core::str::FromStr;
use icu::locale::extensions::unicode::Value;
let value1 = Value::from_str("foo").expect("failed to parse a Value");
let value2 = Value::from_str("foo-bar").expect("failed to parse a Value");
assert!(value1.as_single_subtag().is_some());
assert!(value2.as_single_subtag().is_none());
Sourcepub fn into_single_subtag(self) -> Option<Subtag>
pub fn into_single_subtag(self) -> Option<Subtag>
Destructs into a single Subtag
if the Value
contains exactly one
subtag, or returns None
otherwise.
§Examples
use core::str::FromStr;
use icu::locale::extensions::unicode::Value;
let value1 = Value::from_str("foo").expect("failed to parse a Value");
let value2 = Value::from_str("foo-bar").expect("failed to parse a Value");
assert!(value1.into_single_subtag().is_some());
assert!(value2.into_single_subtag().is_none());
Sourcepub fn subtag_count(&self) -> usize
pub fn subtag_count(&self) -> usize
Sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Returns true
if the Value has no subtags.
§Examples
use icu::locale::{extensions::unicode::Value, subtags::subtag};
let mut v = Value::default();
assert_eq!(v.is_empty(), true);
Sourcepub fn remove_subtag(&mut self, idx: usize) -> Option<Subtag>
pub fn remove_subtag(&mut self, idx: usize) -> Option<Subtag>
Removes and returns the subtag at position index
within the value,
shifting all subtags after it to the left.
§Examples
use icu::locale::{extensions::unicode::Value, subtags::subtag};
let mut v = Value::default();
v.push_subtag(subtag!("foo"));
v.push_subtag(subtag!("bar"));
v.push_subtag(subtag!("baz"));
assert_eq!(v.remove_subtag(1), Some(subtag!("bar")));
assert_eq!(v, "foo-baz");
Sourcepub fn get_subtag(&self, idx: usize) -> Option<&Subtag>
pub fn get_subtag(&self, idx: usize) -> Option<&Subtag>
Returns a reference to a subtag at index.
§Examples
use icu::locale::{extensions::unicode::Value, subtags::subtag};
let mut v = Value::default();
v.push_subtag(subtag!("foo"));
v.push_subtag(subtag!("bar"));
v.push_subtag(subtag!("baz"));
assert_eq!(v.get_subtag(1), Some(&subtag!("bar")));
assert_eq!(v.get_subtag(3), None);
Trait Implementations§
Source§impl Display for Value
This trait is implemented for compatibility with fmt!
.
To create a string, [Writeable::write_to_string
] is usually more efficient.
impl Display for Value
This trait is implemented for compatibility with fmt!
.
To create a string, [Writeable::write_to_string
] is usually more efficient.
Source§impl From<CurrencyType> for Value
impl From<CurrencyType> for Value
Source§fn from(input: CurrencyType) -> Value
fn from(input: CurrencyType) -> Value
Converts to this type from the input type.
Source§impl From<NumberingSystem> for Value
impl From<NumberingSystem> for Value
Source§fn from(input: NumberingSystem) -> Value
fn from(input: NumberingSystem) -> Value
Converts to this type from the input type.
Source§impl From<RegionOverride> for Value
impl From<RegionOverride> for Value
Source§fn from(input: RegionOverride) -> Value
fn from(input: RegionOverride) -> Value
Converts to this type from the input type.
Source§impl From<RegionalSubdivision> for Value
impl From<RegionalSubdivision> for Value
Source§fn from(input: RegionalSubdivision) -> Value
fn from(input: RegionalSubdivision) -> Value
Converts to this type from the input type.
Source§impl From<TimeZoneShortId> for Value
impl From<TimeZoneShortId> for Value
Source§fn from(input: TimeZoneShortId) -> Value
fn from(input: TimeZoneShortId) -> Value
Converts to this type from the input type.
Source§impl IntoIterator for Value
impl IntoIterator for Value
Source§impl Ord for Value
impl Ord for Value
Source§impl PartialOrd for Value
impl PartialOrd for Value
Source§impl TryFrom<Value> for CurrencyType
impl TryFrom<Value> for CurrencyType
Source§impl TryFrom<Value> for NumberingSystem
impl TryFrom<Value> for NumberingSystem
Source§impl TryFrom<Value> for RegionOverride
impl TryFrom<Value> for RegionOverride
Source§impl TryFrom<Value> for RegionalSubdivision
impl TryFrom<Value> for RegionalSubdivision
Source§impl TryFrom<Value> for TimeZoneShortId
impl TryFrom<Value> for TimeZoneShortId
Source§impl Writeable for Value
impl Writeable for Value
Source§fn write_to<W: Write + ?Sized>(&self, sink: &mut W) -> Result
fn write_to<W: Write + ?Sized>(&self, sink: &mut W) -> Result
Writes a string to the given sink. Errors from the sink are bubbled up.
The default implementation delegates to
write_to_parts
, and discards any
Part
annotations.Source§fn writeable_length_hint(&self) -> LengthHint
fn writeable_length_hint(&self) -> LengthHint
Returns a hint for the number of UTF-8 bytes that will be written to the sink. Read more
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,
Write bytes and
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 Value
impl StructuralPartialEq for Value
Auto Trait Implementations§
impl Freeze for Value
impl RefUnwindSafe for Value
impl Send for Value
impl Sync for Value
impl Unpin for Value
impl UnwindSafe for Value
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