#[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 PartialOrd for CharULE
impl PartialOrd for CharULE
source§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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)