Struct icu_plurals::provider::PluralElementsPackedULE
source · pub struct PluralElementsPackedULE<V: VarULE + ?Sized> { /* private fields */ }
Expand description
A bitpacked DST for PluralElements
.
Can be put in a Cow
or a [VarZeroSlice
].
Implementations§
source§impl<V> PluralElementsPackedULE<V>where
V: VarULE + ?Sized,
impl<V> PluralElementsPackedULE<V>where
V: VarULE + ?Sized,
sourcepub const unsafe fn from_bytes_unchecked(bytes: &[u8]) -> &Self
pub const unsafe fn from_bytes_unchecked(bytes: &[u8]) -> &Self
Casts a byte slice to a PluralElementsPackedULE
.
§Safety
The bytes must be valid according to PluralElementsPackedULE::validate_bytes
.
sourcepub fn get<'a>(
&'a self,
op: PluralOperands,
rules: &PluralRules,
) -> (FourBitMetadata, &'a V)
pub fn get<'a>( &'a self, op: PluralOperands, rules: &PluralRules, ) -> (FourBitMetadata, &'a V)
Returns the value for the given PluralOperands
and PluralRules
.
sourcepub fn decode(&self) -> PluralElements<(FourBitMetadata, &V)>
pub fn decode(&self) -> PluralElements<(FourBitMetadata, &V)>
Recovers the PluralElements
corresponding to this packed structure.
sourcepub fn get_default(&self) -> (FourBitMetadata, &V)
pub fn get_default(&self) -> (FourBitMetadata, &V)
Returns the value for the default (“other”) plural variant.
Trait Implementations§
source§impl<'a, V> Bake for &'a PluralElementsPackedULE<V>
impl<'a, V> Bake for &'a PluralElementsPackedULE<V>
source§fn bake(&self, ctx: &CrateEnv) -> TokenStream
fn bake(&self, ctx: &CrateEnv) -> TokenStream
source§impl<'a, V> BakeSize for &'a PluralElementsPackedULE<V>
impl<'a, V> BakeSize for &'a PluralElementsPackedULE<V>
source§fn borrows_size(&self) -> usize
fn borrows_size(&self) -> usize
Returns the size
source§impl<'de, 'data, V> Deserialize<'de> for &'data PluralElementsPackedULE<V>where
V: VarULE + ?Sized,
'de: 'data,
impl<'de, 'data, V> Deserialize<'de> for &'data PluralElementsPackedULE<V>where
V: VarULE + ?Sized,
'de: 'data,
source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl<'de, V> Deserialize<'de> for Box<PluralElementsPackedULE<V>>
impl<'de, V> Deserialize<'de> for Box<PluralElementsPackedULE<V>>
source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl<T, V> EncodeAsVarULE<PluralElementsPackedULE<V>> for PluralElements<(FourBitMetadata, T)>
impl<T, V> EncodeAsVarULE<PluralElementsPackedULE<V>> for PluralElements<(FourBitMetadata, T)>
source§fn encode_var_ule_as_slices<R>(&self, _cb: impl FnOnce(&[&[u8]]) -> R) -> R
fn encode_var_ule_as_slices<R>(&self, _cb: impl FnOnce(&[&[u8]]) -> R) -> R
Calls
cb
with a piecewise list of byte slices that when concatenated
produce the memory pattern of the corresponding instance of T
. Read moresource§fn encode_var_ule_len(&self) -> usize
fn encode_var_ule_len(&self) -> usize
Return the length, in bytes, of the corresponding [
VarULE
] typesource§fn encode_var_ule_write(&self, dst: &mut [u8])
fn encode_var_ule_write(&self, dst: &mut [u8])
Write the corresponding [
VarULE
] type to the dst
buffer. dst
should
be the size of [Self::encode_var_ule_len()
]source§impl<V> Serialize for PluralElementsPackedULE<V>
impl<V> Serialize for PluralElementsPackedULE<V>
source§impl<V: VarULE + ?Sized> ToOwned for PluralElementsPackedULE<V>
impl<V: VarULE + ?Sized> ToOwned for PluralElementsPackedULE<V>
source§type Owned = Box<PluralElementsPackedULE<V>>
type Owned = Box<PluralElementsPackedULE<V>>
The resulting type after obtaining ownership.
source§fn to_owned(&self) -> Self::Owned
fn to_owned(&self) -> Self::Owned
Creates owned data from borrowed data, usually by cloning. Read more
1.63.0 · source§fn clone_into(&self, target: &mut Self::Owned)
fn clone_into(&self, target: &mut Self::Owned)
Uses borrowed data to replace owned data, usually by cloning. Read more
source§impl<V> VarULE for PluralElementsPackedULE<V>where
V: VarULE + ?Sized,
impl<V> VarULE for PluralElementsPackedULE<V>where
V: VarULE + ?Sized,
source§fn validate_bytes(bytes: &[u8]) -> Result<(), UleError>
fn validate_bytes(bytes: &[u8]) -> Result<(), UleError>
Validates a byte slice,
&[u8]
. Read moresource§unsafe fn from_bytes_unchecked(bytes: &[u8]) -> &Self
unsafe fn from_bytes_unchecked(bytes: &[u8]) -> &Self
Takes a byte slice,
&[u8]
, and return it as &Self
with the same lifetime, assuming
that this byte slice has previously been run through [Self::parse_bytes()
] with
success. Read more§fn parse_bytes(bytes: &[u8]) -> Result<&Self, UleError>
fn parse_bytes(bytes: &[u8]) -> Result<&Self, UleError>
impl<V: Eq + VarULE + ?Sized> Eq for PluralElementsPackedULE<V>
impl<V: VarULE + ?Sized> StructuralPartialEq for PluralElementsPackedULE<V>
Auto Trait Implementations§
impl<V> Freeze for PluralElementsPackedULE<V>where
V: ?Sized,
impl<V> RefUnwindSafe for PluralElementsPackedULE<V>where
V: RefUnwindSafe + ?Sized,
impl<V> Send for PluralElementsPackedULE<V>
impl<V> !Sized for PluralElementsPackedULE<V>
impl<V> Sync for PluralElementsPackedULE<V>
impl<V> Unpin for PluralElementsPackedULE<V>
impl<V> UnwindSafe for PluralElementsPackedULE<V>where
V: UnwindSafe + ?Sized,
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
§impl<T> EncodeAsVarULE<T> for Twhere
T: VarULE + ?Sized,
impl<T> EncodeAsVarULE<T> for Twhere
T: VarULE + ?Sized,
§fn encode_var_ule_as_slices<R>(&self, cb: impl FnOnce(&[&[u8]]) -> R) -> R
fn encode_var_ule_as_slices<R>(&self, cb: impl FnOnce(&[&[u8]]) -> R) -> R
Calls
cb
with a piecewise list of byte slices that when concatenated
produce the memory pattern of the corresponding instance of T
. Read more§fn encode_var_ule_len(&self) -> usize
fn encode_var_ule_len(&self) -> usize
Return the length, in bytes, of the corresponding [
VarULE
] type§fn encode_var_ule_write(&self, dst: &mut [u8])
fn encode_var_ule_write(&self, dst: &mut [u8])
Write the corresponding [
VarULE
] type to the dst
buffer. dst
should
be the size of [Self::encode_var_ule_len()
]