[−][src]Trait encode_unicode::CharExt
Extension trait for char that adds methods for converting to and from UTF-8 or UTF-16.
Required methods
fn to_utf8(self) -> Utf8Char
Get the UTF-8 representation of this codepoint.
Utf8Char is to [u8;4] what char is to u32:
a restricted type that cannot be mutated internally.
fn to_utf16(self) -> Utf16Char
Get the UTF-16 representation of this codepoint.
Utf16Char is to (u16,Option<u16>) what char is to u32:
a restricted type that cannot be mutated internally.
ⓘImportant traits for Utf8Iteratorfn iter_utf8_bytes(self) -> Utf8Iterator
Iterate over or read the one to four bytes in the UTF-8 representation of this codepoint.
ⓘImportant traits for Utf16Iteratorfn iter_utf16_units(self) -> Utf16Iterator
Iterate over the one or two units in the UTF-16 representation of this codepoint.
fn to_utf8_slice(self, dst: &mut [u8]) -> Option<usize>
Convert this char to UTF-8, and then returns the number of bytes written.
None is returned if the buffer is too small; then the buffer is left unmodified.
A buffer of length four is always large enough.
Similar to the unstable .encode_utf8(),
but that method somehow still exist on stable, so I have to use a different name.
fn to_utf16_slice(self, dst: &mut [u16]) -> Option<usize>
Convert this char to UTF-16, and then returns the number of units written.
None is returned if the buffer is too small; then the buffer is left unmodified.
A buffer of length two is always large enough.
Similar to the unstable .encode_utf16(),
but that method somehow still exist on stable, so I have to use a different name.
fn to_utf8_array(self) -> ([u8; 4], usize)
Convert this char to an UTF-8 array and lenght, The returned array is left-aligned, and the usize is how many bytes are used. The unused bytes are zero.
fn to_utf16_tuple(self) -> (u16, Option<u16>)
Convert this char to UTF-16.
The second u16 is Some if a surrogate pair is required.
fn from_utf8_slice(src: &[u8]) -> Result<(Self, usize), InvalidUtf8Slice>
Create a char from the start of a slice intepreted as UTF-8, and return how many bytes were needed.
fn from_utf16_slice(src: &[u16]) -> Result<(Self, usize), InvalidUtf16Slice>
Read one or two UTF-16 units into a char, and also return how many units were needed.
fn from_utf8_array(utf8: [u8; 4]) -> Result<Self, InvalidUtf8Array>
Convert an UTF-8 sequence as returned from .to_utf8_array() into a char
fn from_utf16_tuple(
utf16: (u16, Option<u16>)
) -> Result<Self, InvalidUtf16Tuple>
utf16: (u16, Option<u16>)
) -> Result<Self, InvalidUtf16Tuple>
Convert a UTF-16 pair as returned from .to_utf16_tuple() into a char.
unsafe fn from_utf8_exact_slice_unchecked(src: &[u8]) -> Self
Convert an UTF-8 sequence into a char. The length of the slice is the length of the sequence, should be 1,2,3 or 4.
Panics:
If the slice is empty
unsafe fn from_utf16_tuple_unchecked(utf16: (u16, Option<u16>)) -> Self
Convert a UTF-16 tuple as returned from .to_utf16_tuple() into a char.
fn from_u32_detailed(c: u32) -> Result<Self, InvalidCodePoint>
Perform some extra validations compared to char::from_u32_unchecked()
Failures:
- the value is greater than 0x10ffff
- the value is between 0xd800 and 0xdfff (inclusive)
Implementations on Foreign Types
impl CharExt for char[src]
fn to_utf8(self) -> Utf8Char[src]
ⓘImportant traits for Utf8Iteratorfn iter_utf8_bytes(self) -> Utf8Iterator[src]
fn to_utf8_slice(self, dst: &mut [u8]) -> Option<usize>[src]
fn to_utf8_array(self) -> ([u8; 4], usize)[src]
fn from_utf8_slice(src: &[u8]) -> Result<(Self, usize), InvalidUtf8Slice>[src]
fn from_utf8_array(utf8: [u8; 4]) -> Result<Self, InvalidUtf8Array>[src]
unsafe fn from_utf8_exact_slice_unchecked(src: &[u8]) -> Self[src]
fn to_utf16(self) -> Utf16Char[src]
ⓘImportant traits for Utf16Iteratorfn iter_utf16_units(self) -> Utf16Iterator[src]
fn to_utf16_slice(self, dst: &mut [u16]) -> Option<usize>[src]
fn to_utf16_tuple(self) -> (u16, Option<u16>)[src]
fn from_utf16_slice(src: &[u16]) -> Result<(Self, usize), InvalidUtf16Slice>[src]
fn from_utf16_tuple(
utf16: (u16, Option<u16>)
) -> Result<Self, InvalidUtf16Tuple>[src]
utf16: (u16, Option<u16>)
) -> Result<Self, InvalidUtf16Tuple>