Trait encode_unicode::CharExt
[−]
[src]
pub trait CharExt: Sized {
fn to_utf8(self) -> Utf8Char;
fn to_utf16(self) -> Utf16Char;
fn iter_utf8_bytes(self) -> Utf8Iterator;
fn iter_utf16_units(self) -> Utf16Iterator;
fn to_utf8_array(self) -> ([u8; 4], usize);
fn to_utf16_tuple(self) -> (u16, Option<u16>);
fn from_utf8_slice_start(src: &[u8])
-> Result<(Self, usize), InvalidUtf8Slice>;
fn from_utf16_slice_start(src: &[u16])
-> Result<(Self, usize), InvalidUtf16Slice>;
fn from_utf8_array(utf8: [u8; 4]) -> Result<Self, InvalidUtf8Array>;
fn from_utf16_tuple(utf16: (u16, Option<u16>))
-> Result<Self, InvalidUtf16Tuple>;
unsafe fn from_utf8_exact_slice_unchecked(src: &[u8]) -> Self;
unsafe fn from_utf16_tuple_unchecked(utf16: (u16, Option<u16>)) -> Self;
fn from_u32_detailed(c: u32) -> Result<Self, InvalidCodepoint>;
}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;2] what char is to u32:
a restricted type that cannot be mutated internally.
fn iter_utf8_bytes(self) -> Utf8Iterator
Iterate over or read the one to four bytes in the UTF-8 representation of this codepoint.
An identical alternative to the unstable char.encode_utf8().
That method somehow still exist on stable, so I have to use a different name.
fn iter_utf16_units(self) -> Utf16Iterator
Iterate over the one or two units in the UTF-16 representation of this codepoint.
An identical alternative to the unstable char.encode_utf16().
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 with unused bytes set to zero, and the usize is how many bytes are used.
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_start(src: &[u8]) -> Result<(Self, usize), InvalidUtf8Slice>
Create a char from the start of a UTF-8 slice,
and also return how many bytes were used.
fn from_utf16_slice_start(src: &[u16])
-> Result<(Self, usize), InvalidUtf16Slice>
-> Result<(Self, usize), InvalidUtf16Slice>
Create a char from the start of a UTF-16 slice,
and also return how many units were used.
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>
-> 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()
Errors
This function will return an error if * the value is greater than 0x10ffff * the value is between 0xd800 and 0xdfff (inclusive)
Implementors
impl CharExt for char