Struct Key

struct Key(_)

A key used in a list of Fields.

The key has to be a two ASCII characters long, with the first character being alphabetic, and the second being a number.

Examples

use icu::locale::extensions::transform::Key;

let key1: Key = "k0".parse().expect("Failed to parse a Key.");

assert_eq!(key1.as_str(), "k0");

Implementations

impl Key

const fn try_from_str(s: &str) -> Result<Self, ParseError>

A constructor which takes a str slice, parses it and produces a well-formed Key.

Examples

use icu_locale_core::extensions :: transform ::Key;

assert!(Key::try_from_str("k0").is_ok());
assert!(Key::try_from_str("").is_err());
const fn try_from_utf8(code_units: &[u8]) -> Result<Self, ParseError>

See Self::try_from_str

const fn try_from_raw(raw: [u8; 2]) -> Result<Self, ParseError>

Safely creates a Key from its raw format as returned by Self::into_raw. Unlike Self::try_from_utf8, this constructor only takes normalized values.

unsafe const fn from_raw_unchecked(v: [u8; 2]) -> Self

Unsafely creates a Key from its raw format as returned by Self::into_raw. Unlike Self::try_from_utf8, this constructor only takes normalized values.

Safety

This function is safe iff Self::try_from_raw returns an Ok. This is the case for inputs that are correctly normalized.

const fn into_raw(self: Self) -> [u8; 2]

Deconstructs into a raw format to be consumed by from_raw_unchecked or try_from_raw.

const fn as_str(self: &Self) -> &str

A helper function for displaying as a &str.

fn strict_cmp(self: Self, other: &[u8]) -> Ordering

Compare with BCP-47 bytes.

The return value is equivalent to what would happen if you first converted self to a BCP-47 string and then performed a byte comparison.

This function is case-sensitive and results in a total order, so it is appropriate for binary search. The only argument producing Ordering::Equal is self.as_str().as_bytes().

fn normalizing_eq(self: Self, other: &str) -> bool

Compare with a potentially unnormalized BCP-47 string.

The return value is equivalent to what would happen if you first parsed the BCP-47 string and then performed a structural comparison.

impl Key

fn to_string(self: &Self) -> String

Converts the given value to a String.

Under the hood, this uses an efficient Writeable implementation. However, in order to avoid allocating a string, it is more efficient to use Writeable directly.

impl AsULE for Key

fn to_unaligned(self: Self) -> <Self as >::ULE
fn from_unaligned(unaligned: <Self as >::ULE) -> Self

impl Clone for Key

fn clone(self: &Self) -> Key

impl Copy for Key

impl Debug for Key

fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result

impl Display for Key

fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result

impl Eq for Key

impl Freeze for Key

impl FromStr for Key

fn from_str(s: &str) -> Result<Self, <Self as >::Err>

impl Hash for Key

fn hash<__H: $crate::hash::Hasher>(self: &Self, state: &mut __H)

impl NicheBytes for Key

impl Ord for Key

fn cmp(self: &Self, other: &Key) -> Ordering

impl PartialEq for Key

fn eq(self: &Self, other: &Key) -> bool

impl PartialOrd for Key

fn partial_cmp(self: &Self, other: &Key) -> Option<Ordering>

impl RefUnwindSafe for Key

impl Send for Key

impl StructuralPartialEq for Key

impl Sync for Key

impl ULE for Key

fn validate_bytes(bytes: &[u8]) -> Result<(), UleError>

impl Unpin for Key

impl UnsafeUnpin for Key

impl UnwindSafe for Key

impl Writeable for Key

fn write_to<W: core::fmt::Write + ?Sized>(self: &Self, sink: &mut W) -> Result
fn writeable_length_hint(self: &Self) -> LengthHint

impl<'a> ZeroMapKV for Key

impl<T> Any for Key

fn type_id(self: &Self) -> TypeId

impl<T> Borrow for Key

fn borrow(self: &Self) -> &T

impl<T> BorrowMut for Key

fn borrow_mut(self: &mut Self) -> &mut T

impl<T> CloneToUninit for Key

unsafe fn clone_to_uninit(self: &Self, dest: *mut u8)

impl<T> ErasedDestructor for Key

impl<T> From for Key

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> ToOwned for Key

fn to_owned(self: &Self) -> T
fn clone_into(self: &Self, target: &mut T)

impl<T> ToString for Key

fn to_string(self: &Self) -> String

impl<T, U> Into for Key

fn into(self: Self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom for Key

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

impl<T, U> TryInto for Key

fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>