pub struct Fields(_);
Expand description
A list of Key
-Value
pairs representing functional information
about content transformations.
Here are examples of fields used in Unicode:
s0
,d0
- Transform source/destinationt0
- Machine Translationh0
- Hybrid Locale Identifiers
You can find the full list in Unicode BCP 47 T Extension
section of LDML.
Examples
use icu::locid::extensions::transform::{Fields, Key, Value};
use icu::locid::extensions_transform_key as key;
let value = "hybrid".parse::<Value>().expect("Failed to parse a Value.");
let fields = vec![(key!("h0"), value)].into_iter().collect::<Fields>();
assert_eq!(&fields.to_string(), "h0-hybrid");
Implementations
sourceimpl Fields
impl Fields
sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Returns true
if there are no fields.
Examples
use icu::locid::extensions::transform::Fields;
use icu::locid::locale;
use icu::locid::Locale;
let loc1 = Locale::try_from_bytes(b"und-t-h0-hybrid").unwrap();
let loc2 = locale!("und-u-ca-buddhist");
assert!(!loc1.extensions.transform.fields.is_empty());
assert!(loc2.extensions.transform.fields.is_empty());
sourcepub fn clear(&mut self) -> Fields
pub fn clear(&mut self) -> Fields
Empties the Fields
list.
Returns the old list.
Examples
use icu::locid::extensions::transform::{Fields, Value};
use icu::locid::extensions_transform_key as key;
let value = "hybrid".parse::<Value>().expect("Failed to parse a Value.");
let mut fields = vec![(key!("h0"), value)].into_iter().collect::<Fields>();
assert_eq!(&fields.to_string(), "h0-hybrid");
fields.clear();
assert_eq!(fields, Fields::new());
sourcepub fn contains_key<Q>(&self, key: &Q) -> bool where
Q: Ord,
Key: Borrow<Q>,
pub fn contains_key<Q>(&self, key: &Q) -> bool where
Q: Ord,
Key: Borrow<Q>,
Returns true
if the list contains a Value
for the specified Key
.
Examples
use icu::locid::extensions::transform::{Fields, Key, Value};
let key: Key = "h0".parse().expect("Failed to parse a Key.");
let value: Value = "hybrid".parse().expect("Failed to parse a Value.");
let mut fields: Fields = vec![(key, value)].into_iter().collect();
let key: Key = "h0".parse().expect("Failed to parse a Key.");
assert!(&fields.contains_key(&key));
sourcepub fn get<Q>(&self, key: &Q) -> Option<&Value> where
Q: Ord,
Key: Borrow<Q>,
pub fn get<Q>(&self, key: &Q) -> Option<&Value> where
Q: Ord,
Key: Borrow<Q>,
Returns a reference to the Value
corresponding to the Key
.
Examples
use icu::locid::extensions::transform::{Fields, Key, Value};
use icu::locid::extensions_transform_key as key;
let value = "hybrid".parse::<Value>().unwrap();
let fields = vec![(key!("h0"), value.clone())]
.into_iter()
.collect::<Fields>();
assert_eq!(fields.get(&key!("h0")), Some(&value));
sourcepub fn set(&mut self, key: Key, value: Value) -> Option<Value>
pub fn set(&mut self, key: Key, value: Value) -> Option<Value>
Sets the specified keyword, returning the old value if it already existed.
Examples
use icu::locid::extensions::transform::Key;
use icu::locid::extensions::transform::Value;
use icu::locid::extensions_transform_key as key;
use icu::locid::Locale;
let lower = "lower".parse::<Value>().expect("valid extension subtag");
let casefold = "casefold".parse::<Value>().expect("valid extension subtag");
let mut loc: Locale = "en-t-hi-d0-casefold"
.parse()
.expect("valid BCP-47 identifier");
let old_value = loc.extensions.transform.fields.set(key!("d0"), lower);
assert_eq!(old_value, Some(casefold));
assert_eq!(loc, "en-t-hi-d0-lower".parse().unwrap());
sourcepub fn retain_by_key<F>(&mut self, predicate: F) where
F: FnMut(&Key) -> bool,
pub fn retain_by_key<F>(&mut self, predicate: F) where
F: FnMut(&Key) -> bool,
Retains a subset of fields as specified by the predicate function.
Examples
use icu::locid::extensions_transform_key as key;
use icu::locid::Locale;
let mut loc: Locale = "und-t-h0-hybrid-d0-hex-m0-xml".parse().unwrap();
loc.extensions
.transform
.fields
.retain_by_key(|&k| k == key!("h0"));
assert_eq!(loc, "und-t-h0-hybrid".parse().unwrap());
loc.extensions
.transform
.fields
.retain_by_key(|&k| k == key!("d0"));
assert_eq!(loc, Locale::UND);
Trait Implementations
sourceimpl Display for Fields
impl Display for Fields
This trait is implemented for compatibility with fmt!
.
To create a string, [Writeable::write_to_string
] is usually more efficient.
sourceimpl Ord for Fields
impl Ord for Fields
sourceimpl PartialOrd<Fields> for Fields
impl PartialOrd<Fields> for Fields
sourcefn partial_cmp(&self, other: &Fields) -> Option<Ordering>
fn partial_cmp(&self, other: &Fields) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
sourceimpl Writeable for Fields
impl Writeable for Fields
sourcefn write_to<W>(&self, sink: &mut W) -> Result<(), Error> where
W: Write + ?Sized,
fn write_to<W>(&self, sink: &mut W) -> Result<(), Error> where
W: Write + ?Sized,
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. Read more
sourcefn 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
sourcefn 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. Read more
sourcefn write_to_string(&self) -> Cow<'_, str>
fn write_to_string(&self) -> Cow<'_, str>
Creates a new String
with the data from this Writeable
. Like ToString
,
but smaller and faster. Read more
impl Eq for Fields
impl StructuralEq for Fields
impl StructuralPartialEq for Fields
Auto Trait Implementations
impl RefUnwindSafe for Fields
impl Send for Fields
impl Sync for Fields
impl Unpin for Fields
impl UnwindSafe for Fields
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Separable for T where
T: Display,
impl<T> Separable for T where
T: Display,
sourcefn separate_by_policy(&self, policy: SeparatorPolicy<'_>) -> String
fn separate_by_policy(&self, policy: SeparatorPolicy<'_>) -> String
Adds separators according to the given SeparatorPolicy
. Read more
sourcefn separate_with_commas(&self) -> String
fn separate_with_commas(&self) -> String
Inserts a comma every three digits from the right. Read more
sourcefn separate_with_spaces(&self) -> String
fn separate_with_spaces(&self) -> String
Inserts a space every three digits from the right. Read more
sourcefn separate_with_dots(&self) -> String
fn separate_with_dots(&self) -> String
Inserts a period every three digits from the right. Read more
sourcefn separate_with_underscores(&self) -> String
fn separate_with_underscores(&self) -> String
Inserts an underscore every three digits from the right. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more