Enum Utf8Sequence

enum Utf8Sequence

Utf8Sequence represents a sequence of byte ranges.

To match a Utf8Sequence, a candidate byte sequence must match each successive range.

For example, if there are two ranges, [C2-DF][80-BF], then the byte sequence \xDD\x61 would not match because 0x61 < 0x80.

Variants

One(Utf8Range)

One byte range.

Two([Utf8Range; 2])

Two successive byte ranges.

Three([Utf8Range; 3])

Three successive byte ranges.

Four([Utf8Range; 4])

Four successive byte ranges.

Implementations

impl Utf8Sequence

fn as_slice(self: &Self) -> &[Utf8Range]

Returns the underlying sequence of byte ranges as a slice.

fn len(self: &Self) -> usize

Returns the number of byte ranges in this sequence.

The length is guaranteed to be in the closed interval [1, 4].

fn reverse(self: &mut Self)

Reverses the ranges in this sequence.

For example, if this corresponds to the following sequence:

[D0-D3][80-BF]

Then after reversal, it will be

[80-BF][D0-D3]

This is useful when one is constructing a UTF-8 automaton to match character classes in reverse.

fn matches(self: &Self, bytes: &[u8]) -> bool

Returns true if and only if a prefix of bytes matches this sequence of byte ranges.

impl Clone for Utf8Sequence

fn clone(self: &Self) -> Utf8Sequence

impl Copy for Utf8Sequence

impl Debug for Utf8Sequence

fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result

impl Eq for Utf8Sequence

impl Freeze for Utf8Sequence

impl Ord for Utf8Sequence

fn cmp(self: &Self, other: &Utf8Sequence) -> Ordering

impl PartialEq for Utf8Sequence

fn eq(self: &Self, other: &Utf8Sequence) -> bool

impl PartialOrd for Utf8Sequence

fn partial_cmp(self: &Self, other: &Utf8Sequence) -> Option<Ordering>

impl RefUnwindSafe for Utf8Sequence

impl Send for Utf8Sequence

impl StructuralPartialEq for Utf8Sequence

impl Sync for Utf8Sequence

impl Unpin for Utf8Sequence

impl UnsafeUnpin for Utf8Sequence

impl UnwindSafe for Utf8Sequence

impl<T> Any for Utf8Sequence

fn type_id(self: &Self) -> TypeId

impl<T> Borrow for Utf8Sequence

fn borrow(self: &Self) -> &T

impl<T> BorrowMut for Utf8Sequence

fn borrow_mut(self: &mut Self) -> &mut T

impl<T> CloneToUninit for Utf8Sequence

unsafe fn clone_to_uninit(self: &Self, dest: *mut u8)

impl<T> From for Utf8Sequence

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> ToOwned for Utf8Sequence

fn to_owned(self: &Self) -> T
fn clone_into(self: &Self, target: &mut T)

impl<T, U> Into for Utf8Sequence

fn into(self: Self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom for Utf8Sequence

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

impl<T, U> TryInto for Utf8Sequence

fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>