pub struct CodePoint { /* private fields */ }Expand description
A Unicode code point: from U+0000 to U+10FFFF.
Compares with the char type,
which represents a Unicode scalar value:
a code point that is not a surrogate (U+D800 to U+DFFF).
Implementations§
Source§impl CodePoint
impl CodePoint
Sourcepub const unsafe fn from_u32_unchecked(value: u32) -> CodePoint
pub const unsafe fn from_u32_unchecked(value: u32) -> CodePoint
Unsafely creates a new CodePoint without checking the value.
§Safety
value must be less than or equal to 0x10FFFF.
Sourcepub const fn from_u32(value: u32) -> Option<CodePoint>
pub const fn from_u32(value: u32) -> Option<CodePoint>
Creates a new CodePoint if the value is a valid code point.
Returns None if value is above 0x10FFFF.
Sourcepub const fn from_char(value: char) -> CodePoint
pub const fn from_char(value: char) -> CodePoint
Creates a new CodePoint from a char.
Since all Unicode scalar values are code points, this always succeeds.
Sourcepub const fn to_lead_surrogate(self) -> Option<LeadSurrogate>
pub const fn to_lead_surrogate(self) -> Option<LeadSurrogate>
Returns the numeric value of the code point if it is a leading surrogate.
Sourcepub const fn to_trail_surrogate(self) -> Option<TrailSurrogate>
pub const fn to_trail_surrogate(self) -> Option<TrailSurrogate>
Returns the numeric value of the code point if it is a trailing surrogate.
Sourcepub const fn to_char(self) -> Option<char>
pub const fn to_char(self) -> Option<char>
Optionally returns a Unicode scalar value for the code point.
Returns None if the code point is a surrogate (from U+D800 to U+DFFF).
Sourcepub fn to_char_lossy(self) -> char
pub fn to_char_lossy(self) -> char
Returns a Unicode scalar value for the code point.
Returns '\u{FFFD}' (the replacement character “�”)
if the code point is a surrogate (from U+D800 to U+DFFF).
pub fn is_char_and(self, f: impl FnOnce(char) -> bool) -> bool
pub fn encode_wtf8(self, dst: &mut [u8]) -> &mut Wtf8
pub const fn len_wtf8(&self) -> usize
pub fn is_ascii(&self) -> bool
Trait Implementations§
Source§impl Debug for CodePoint
Format the code point as U+ followed by four to six hexadecimal digits.
Example: U+1F4A9
impl Debug for CodePoint
Format the code point as U+ followed by four to six hexadecimal digits.
Example: U+1F4A9
Source§impl Extend<CodePoint> for Wtf8Buf
Append code points from an iterator to the string.
impl Extend<CodePoint> for Wtf8Buf
Append code points from an iterator to the string.
This replaces surrogate code point pairs with supplementary code points, like concatenating ill-formed UTF-16 strings effectively would.
Source§fn extend<T: IntoIterator<Item = CodePoint>>(&mut self, iter: T)
fn extend<T: IntoIterator<Item = CodePoint>>(&mut self, iter: T)
Source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one)Source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one)Source§impl FromIterator<CodePoint> for Wtf8Buf
Creates a new WTF-8 string from an iterator of code points.
impl FromIterator<CodePoint> for Wtf8Buf
Creates a new WTF-8 string from an iterator of code points.
This replaces surrogate code point pairs with supplementary code points, like concatenating ill-formed UTF-16 strings effectively would.
Source§impl Ord for CodePoint
impl Ord for CodePoint
Source§impl PartialOrd for CodePoint
impl PartialOrd for CodePoint
impl Copy for CodePoint
impl Eq for CodePoint
impl StructuralPartialEq for CodePoint
Auto Trait Implementations§
impl Freeze for CodePoint
impl RefUnwindSafe for CodePoint
impl Send for CodePoint
impl Sync for CodePoint
impl Unpin for CodePoint
impl UnsafeUnpin for CodePoint
impl UnwindSafe for CodePoint
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more