Struct Wtf8
pub struct Wtf8 { /* private fields */ }__base only.Expand description
A borrowed slice of well-formed WTF-8 data.
Similar to &str, but can additionally contain surrogate code points
if they’re not in a surrogate pair.
Implementations§
§impl Wtf8
impl Wtf8
pub const fn from_str(value: &str) -> &Wtf8
Available on crate features __ecma and ecma_ast only.
pub const fn from_str(value: &str) -> &Wtf8
__ecma and ecma_ast only.Create a WTF-8 slice from a UTF-8 &str slice.
Since WTF-8 is a superset of UTF-8, this always succeeds.
pub const fn len(&self) -> usize
Available on crate features __ecma and ecma_ast only.
pub const fn len(&self) -> usize
__ecma and ecma_ast only.Return the length, in WTF-8 bytes.
pub const fn is_empty(&self) -> bool
Available on crate features __ecma and ecma_ast only.
pub const fn is_empty(&self) -> bool
__ecma and ecma_ast only.Return true if the string has a length of zero bytes.
pub const fn is_ascii(&self) -> bool
Available on crate features __ecma and ecma_ast only.
pub const fn is_ascii(&self) -> bool
__ecma and ecma_ast only.Return true if the string contains only ASCII characters.
pub fn slice(&self, begin: usize, end: usize) -> &Wtf8
Available on crate features __ecma and ecma_ast only.
pub fn slice(&self, begin: usize, end: usize) -> &Wtf8
__ecma and ecma_ast only.Return a slice of the given string for the byte range [begin..end).
§Failure
Fails when begin and end do not point to code point boundaries,
or point beyond the end of the string.
pub fn slice_from(&self, begin: usize) -> &Wtf8
Available on crate features __ecma and ecma_ast only.
pub fn slice_from(&self, begin: usize) -> &Wtf8
__ecma and ecma_ast only.Return a slice of the given string from byte begin to its end.
§Failure
Fails when begin is not at a code point boundary,
or is beyond the end of the string.
pub fn slice_to(&self, end: usize) -> &Wtf8
Available on crate features __ecma and ecma_ast only.
pub fn slice_to(&self, end: usize) -> &Wtf8
__ecma and ecma_ast only.Return a slice of the given string from its beginning to byte end.
§Failure
Fails when end is not at a code point boundary,
or is beyond the end of the string.
pub fn ascii_byte_at(&self, position: usize) -> u8
Available on crate features __ecma and ecma_ast only.
pub fn ascii_byte_at(&self, position: usize) -> u8
__ecma and ecma_ast only.Return the code point at position if it is in the ASCII range,
or `b’\xFF’ otherwise.
§Failure
Fails if position is beyond the end of the string.
pub fn code_points(&self) -> Wtf8CodePoints<'_> ⓘ
Available on crate features __ecma and ecma_ast only.
pub fn code_points(&self) -> Wtf8CodePoints<'_> ⓘ
__ecma and ecma_ast only.Return an iterator for the string’s code points.
pub fn contains_char(&self, ch: char) -> bool
Available on crate features __ecma and ecma_ast only.
pub fn contains_char(&self, ch: char) -> bool
__ecma and ecma_ast only.Returns true if this WTF-8 string contains the given character.
pub fn contains(&self, code_point: CodePoint) -> bool
Available on crate features __ecma and ecma_ast only.
pub fn contains(&self, code_point: CodePoint) -> bool
__ecma and ecma_ast only.Returns true if this WTF-8 string contains the given code point.
pub fn starts_with(&self, pattern: &str) -> bool
Available on crate features __ecma and ecma_ast only.
pub fn starts_with(&self, pattern: &str) -> bool
__ecma and ecma_ast only.Returns true if this WTF-8 string starts with the given UTF-8 string.
pub fn as_str(&self) -> Option<&str>
Available on crate features __ecma and ecma_ast only.
pub fn as_str(&self) -> Option<&str>
__ecma and ecma_ast only.Try to convert the string to UTF-8 and return a &str slice.
Return None if the string contains surrogates.
This does not copy the data.
pub const fn as_bytes(&self) -> &[u8] ⓘ
Available on crate features __ecma and ecma_ast only.
pub const fn as_bytes(&self) -> &[u8] ⓘ
__ecma and ecma_ast only.Return the underlying WTF-8 bytes.
pub fn to_string_lossy(&self) -> Cow<'_, str>
Available on crate features __ecma and ecma_ast only.
pub fn to_string_lossy(&self) -> Cow<'_, str>
__ecma and ecma_ast only.Lossily convert the string to UTF-8.
Return an UTF-8 &str slice if the contents are well-formed in UTF-8.
Surrogates are replaced with "\u{FFFD}" (the replacement character
“�”).
This only copies the data if necessary (if it contains any surrogate).
pub fn to_ill_formed_utf16(&self) -> IllFormedUtf16CodeUnits<'_> ⓘ
Available on crate features __ecma and ecma_ast only.
pub fn to_ill_formed_utf16(&self) -> IllFormedUtf16CodeUnits<'_> ⓘ
__ecma and ecma_ast only.Convert the WTF-8 string to potentially ill-formed UTF-16 and return an iterator of 16-bit code units.
This is lossless:
calling Wtf8Buf::from_ill_formed_utf16 on the resulting code units
would always return the original WTF-8 string.
pub fn to_uppercase(&self) -> Wtf8Buf
Available on crate features __ecma and ecma_ast only.
pub fn to_uppercase(&self) -> Wtf8Buf
__ecma and ecma_ast only.Returns the uppercase equivalent of this wtf8 slice, as a new Wtf8Buf.
pub fn to_lowercase(&self) -> Wtf8Buf
Available on crate features __ecma and ecma_ast only.
pub fn to_lowercase(&self) -> Wtf8Buf
__ecma and ecma_ast only.Returns the lowercase equivalent of this wtf8 slice, as a new Wtf8Buf.
pub fn from_bytes(bytes: &[u8]) -> Result<&Wtf8, &[u8]>
Available on crate features __ecma and ecma_ast only.
pub fn from_bytes(bytes: &[u8]) -> Result<&Wtf8, &[u8]>
__ecma and ecma_ast only.Create a WTF-8 slice from a WTF-8 encoded byte slice.
Returns Ok(&Wtf8) if the bytes are well-formed WTF-8, or
Err(bytes) with the original byte slice if validation fails.
This validates that:
- All bytes form valid UTF-8 sequences OR valid surrogate code point encodings
- Surrogate code points may appear unpaired and be encoded separately,
but if they are paired, they must be encoded as a single 4-byte UTF-8
sequence. For example, the byte sequence
[0xED, 0xA0, 0x80, 0xED, 0xB0, 0x80]is not valid WTF-8 because WTF-8 forbids encoding a surrogate pair as two separate 3-byte sequences.
pub const unsafe fn from_bytes_unchecked(bytes: &[u8]) -> &Wtf8
Available on crate features __ecma and ecma_ast only.
pub const unsafe fn from_bytes_unchecked(bytes: &[u8]) -> &Wtf8
__ecma and ecma_ast only.Create a WTF-8 slice from a WTF-8 encoded byte slice without checking that the bytes contain valid WTF-8.
For the safe version, see Wtf8::from_bytes.
§Safety
The bytes passed in must be valid WTF-8. See Wtf8::from_bytes for the requirements.
Trait Implementations§
§impl Debug for Wtf8
Format the slice with double quotes,
and surrogates as \u followed by four hexadecimal digits.
Example: "a\u{D800}" for a slice with code points [U+0061, U+D800]
impl Debug for Wtf8
Format the slice with double quotes,
and surrogates as \u followed by four hexadecimal digits.
Example: "a\u{D800}" for a slice with code points [U+0061, U+D800]
§impl PartialOrd for Wtf8
impl PartialOrd for Wtf8
impl Eq for Wtf8
Auto Trait Implementations§
impl Freeze for Wtf8
impl RefUnwindSafe for Wtf8
impl Send for Wtf8
impl !Sized for Wtf8
impl Sync for Wtf8
impl Unpin for Wtf8
impl UnwindSafe for Wtf8
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
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.