pub struct CodePoint {
value: u32,
}
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).
Fields§
§value: u32
Implementations§
Source§impl CodePoint
impl CodePoint
Sourcepub unsafe fn from_u32_unchecked(value: u32) -> CodePoint
pub unsafe fn from_u32_unchecked(value: u32) -> CodePoint
Unsafely creates a new CodePoint
without checking the value.
Only use when value
is known to be less than or equal to 0x10FFFF.
Sourcepub fn from_u32(value: u32) -> Option<CodePoint>
pub 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 fn from_char(value: char) -> CodePoint
pub 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 fn to_lead_surrogate(&self) -> Option<u16>
pub fn to_lead_surrogate(&self) -> Option<u16>
Returns the numeric value of the code point if it is a leading surrogate.
Sourcepub fn to_trail_surrogate(&self) -> Option<u16>
pub fn to_trail_surrogate(&self) -> Option<u16>
Returns the numeric value of the code point if it is a trailing surrogate.
Sourcepub fn to_char(&self) -> Option<char>
pub 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).
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, code_point: CodePoint)
fn extend_one(&mut self, code_point: CodePoint)
extend_one
#72631)Source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
#72631)Source§#[doc(hidden)] unsafe fn extend_one_unchecked(&mut self, item: A)where
Self: Sized,
#[doc(hidden)] unsafe fn extend_one_unchecked(&mut self, item: A)where
Self: Sized,
extend_one_unchecked
)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
Source§#[doc(hidden)] fn __chaining_lt(&self, other: &Rhs) -> ControlFlow<bool>
#[doc(hidden)] fn __chaining_lt(&self, other: &Rhs) -> ControlFlow<bool>
partial_ord_chaining_methods
)self == other
, returns ControlFlow::Continue(())
.
Otherwise, returns ControlFlow::Break(self < other)
. Read moreSource§#[doc(hidden)] fn __chaining_le(&self, other: &Rhs) -> ControlFlow<bool>
#[doc(hidden)] fn __chaining_le(&self, other: &Rhs) -> ControlFlow<bool>
partial_ord_chaining_methods
)__chaining_lt
, but for <=
instead of <
.Source§#[doc(hidden)] fn __chaining_gt(&self, other: &Rhs) -> ControlFlow<bool>
#[doc(hidden)] fn __chaining_gt(&self, other: &Rhs) -> ControlFlow<bool>
partial_ord_chaining_methods
)__chaining_lt
, but for >
instead of <
.Source§#[doc(hidden)] fn __chaining_ge(&self, other: &Rhs) -> ControlFlow<bool>
#[doc(hidden)] fn __chaining_ge(&self, other: &Rhs) -> ControlFlow<bool>
partial_ord_chaining_methods
)__chaining_lt
, but for >=
instead of <
.impl Copy 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 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> SizedTypeProperties for T
impl<T> SizedTypeProperties for T
Source§#[doc(hidden)] const IS_ZST: bool = _
#[doc(hidden)] const IS_ZST: bool = _
sized_type_properties
)Source§#[doc(hidden)] const LAYOUT: Layout = _
#[doc(hidden)] const LAYOUT: Layout = _
sized_type_properties
)Source§#[doc(hidden)] const MAX_SLICE_LEN: usize = _
#[doc(hidden)] const MAX_SLICE_LEN: usize = _
sized_type_properties
)[Self]
. Read more