Skip to main content

BytesMode

Enum BytesMode 

Source
pub enum BytesMode {
    Unicode,
    Ascii,
    UnicodeBytes,
}
Expand description

Controls how the regex engine handles input encoding.

This enum represents the three valid combinations of the utf8 and unicode flags in the underlying regex engine. Each variant has different trade-offs between input flexibility and character class semantics.

The default is BytesMode::Unicode.

§Variants

§BytesMode::Unicode (default)

  • Input is expected to be valid UTF-8
  • . matches any Unicode scalar value (except \n unless dot_matches_new_line is set)
  • \w, \d, \s match Unicode characters
  • Unicode properties like \p{Letter} are available
  • Word boundaries (\b) are Unicode-aware

§BytesMode::Ascii

  • Input can be arbitrary bytes (no UTF-8 requirement)
  • . matches any single byte (except \n unless dot_matches_new_line is set)
  • \w matches [a-zA-Z0-9_] only (ASCII)
  • \d matches [0-9] only (ASCII)
  • \s matches ASCII whitespace only
  • Unicode properties are not available
  • Word boundaries (\b) use ASCII-only word characters

Use this mode when matching raw binary data or filenames that may contain non-UTF-8 bytes and you don’t need Unicode character classes.

§BytesMode::UnicodeBytes

  • Input can be arbitrary bytes (no UTF-8 requirement)
  • . matches Unicode scalar values (sequences of valid UTF-8 bytes)
  • \w, \d, \s match Unicode characters
  • Unicode properties like \p{Letter} are available

Use this mode when the input may contain non-UTF-8 bytes but you still want Unicode-aware character classes. Note that . will not match individual non-UTF-8 bytes — it only matches valid UTF-8 codepoint sequences.

Variants§

§

Unicode

Unicode mode: input must be valid UTF-8, full Unicode support. (utf8=true, unicode=true)

§

Ascii

ASCII bytes mode: . matches any byte, character classes are ASCII-only. (utf8=false, unicode=false)

§

UnicodeBytes

Unicode-aware bytes mode: input can be non-UTF-8, character classes remain Unicode-aware. . matches Unicode scalar values only. (utf8=false, unicode=true)

Trait Implementations§

Source§

impl Clone for BytesMode

Source§

fn clone(&self) -> BytesMode

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for BytesMode

Source§

impl Debug for BytesMode

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for BytesMode

Source§

fn default() -> BytesMode

Returns the “default value” for a type. Read more
Source§

impl Eq for BytesMode

Source§

impl PartialEq for BytesMode

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for BytesMode

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

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

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.