#[repr(transparent)]pub struct CharULE([u8; 3]);
Expand description
A u8 array of little-endian data corresponding to a Unicode scalar value.
The bytes of a CharULE
are guaranteed to represent a little-endian-encoded u32 that is a
valid char
and can be converted without validation.
§Examples
Convert a char
to a CharULE
and back again:
use zerovec::ule::{AsULE, CharULE, ULE};
let c1 = '𑄃';
let ule = c1.to_unaligned();
assert_eq!(CharULE::as_byte_slice(&[ule]), &[0x03, 0x11, 0x01]);
let c2 = char::from_unaligned(ule);
assert_eq!(c1, c2);
Attempt to parse invalid bytes to a CharULE
:
use zerovec::ule::{CharULE, ULE};
let bytes: &[u8] = &[0xFF, 0xFF, 0xFF, 0xFF];
CharULE::parse_byte_slice(bytes).expect_err("Invalid bytes");
Tuple Fields§
§0: [u8; 3]
Implementations§
source§impl CharULE
impl CharULE
sourcepub const fn from_aligned(c: char) -> Self
pub const fn from_aligned(c: char) -> Self
Converts a char
to a CharULE
. This is equivalent to calling
AsULE::to_unaligned()
See the type-level documentation for CharULE
for more information.
Trait Implementations§
source§impl Ord for CharULE
impl Ord for CharULE
source§impl PartialEq for CharULE
impl PartialEq for CharULE
source§impl PartialOrd for CharULE
impl PartialOrd for CharULE
1.0.0 · source§fn 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 moresource§impl ULE for CharULE
impl ULE for CharULE
source§fn validate_byte_slice(bytes: &[u8]) -> Result<(), ZeroVecError>
fn validate_byte_slice(bytes: &[u8]) -> Result<(), ZeroVecError>
Validates a byte slice,
&[u8]
. Read moresource§fn parse_byte_slice(bytes: &[u8]) -> Result<&[Self], ZeroVecError>
fn parse_byte_slice(bytes: &[u8]) -> Result<&[Self], ZeroVecError>
source§unsafe fn from_byte_slice_unchecked(bytes: &[u8]) -> &[Self]
unsafe fn from_byte_slice_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_byte_slice()
with
success. Read moreimpl Copy for CharULE
impl Eq for CharULE
impl StructuralPartialEq for CharULE
Auto Trait Implementations§
impl Freeze for CharULE
impl RefUnwindSafe for CharULE
impl Send for CharULE
impl Sync for CharULE
impl Unpin for CharULE
impl UnwindSafe for CharULE
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