pub struct Utf32U32Codec;Expand description
Combined UTF-32 u32 code-unit codec.
Utf32U32Codec works with raw UTF-32 scalar-value units rather than
serialized bytes. Use crate::Utf32ByteCodec for byte streams with an
explicit byte order.
§Examples
use qubit_text_codec::{
CharsetCodec,
DecodeStatus,
Charset,
Utf32,
Utf32U32Codec,
};
let codec = Utf32U32Codec;
assert_eq!(Charset::UTF_32, codec.charset());
assert_eq!(Utf32::MAX_UNITS_PER_CHAR, codec.max_units_per_char());
let mut output = [0_u32; Utf32::MAX_UNITS_PER_CHAR];
let written = codec.encode_one('中', &mut output, 0).expect("buffer fits");
assert_eq!(
DecodeStatus::Complete {
value: '中',
consumed: written,
},
codec.decode_one(&output[..written], 0).expect("valid UTF-32"),
);Implementations§
Source§impl Utf32U32Codec
impl Utf32U32Codec
Sourcepub const fn max_units_per_char(self) -> usize
pub const fn max_units_per_char(self) -> usize
Returns the maximum number of UTF-32 code units needed for one character.
§Returns
Returns Utf32::MAX_UNITS_PER_CHAR.
Trait Implementations§
Source§impl CharsetCodec for Utf32U32Codec
impl CharsetCodec for Utf32U32Codec
Source§fn max_units_per_char(&self) -> usize
fn max_units_per_char(&self) -> usize
Returns the fixed size (1 unit) for one UTF-32 scalar value.
§Returns
Returns Utf32::MAX_UNITS_PER_CHAR.
Source§fn decode_one(
&self,
input: &[u32],
index: usize,
) -> CharsetDecodeResult<DecodeStatus>
fn decode_one( &self, input: &[u32], index: usize, ) -> CharsetDecodeResult<DecodeStatus>
Decodes one UTF-32 scalar value from a u32 prefix.
§Arguments
input- UTF-32 unit slice.index- Start offset for parsing; must satisfyindex <= input.len().
§Returns
Ok(DecodeStatus::NeedMore { required, available })when no unit is available.Ok(DecodeStatus::Complete { value, consumed })withconsumed == 1.
§Errors
crate::CharsetDecodeErrorKind::MalformedSequencewhen index is out of bounds.crate::CharsetDecodeErrorKind::InvalidCodePointwhen unit is not a valid scalar.
Source§fn encode_one(
&self,
ch: char,
output: &mut [u32],
index: usize,
) -> CharsetEncodeResult<usize>
fn encode_one( &self, ch: char, output: &mut [u32], index: usize, ) -> CharsetEncodeResult<usize>
Encodes one Unicode scalar value into a u32 unit at index.
§Arguments
ch- The Unicode scalar value to encode.output- Destinationu32buffer.index- Start offset where one unit is written; must satisfyindex < output.len().
§Returns
Always returns Ok(1) on success.
§Errors
crate::CharsetEncodeErrorKind::BufferTooSmallifoutputhas no room atindex.
Source§impl Clone for Utf32U32Codec
impl Clone for Utf32U32Codec
Source§fn clone(&self) -> Utf32U32Codec
fn clone(&self) -> Utf32U32Codec
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for Utf32U32Codec
impl Debug for Utf32U32Codec
Source§impl Default for Utf32U32Codec
impl Default for Utf32U32Codec
Source§fn default() -> Utf32U32Codec
fn default() -> Utf32U32Codec
Returns the “default value” for a type. Read more
Source§impl Hash for Utf32U32Codec
impl Hash for Utf32U32Codec
Source§impl PartialEq for Utf32U32Codec
impl PartialEq for Utf32U32Codec
Source§fn eq(&self, other: &Utf32U32Codec) -> bool
fn eq(&self, other: &Utf32U32Codec) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Copy for Utf32U32Codec
impl Eq for Utf32U32Codec
impl StructuralPartialEq for Utf32U32Codec
Auto Trait Implementations§
impl Freeze for Utf32U32Codec
impl RefUnwindSafe for Utf32U32Codec
impl Send for Utf32U32Codec
impl Sync for Utf32U32Codec
impl Unpin for Utf32U32Codec
impl UnsafeUnpin for Utf32U32Codec
impl UnwindSafe for Utf32U32Codec
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