Enum HirKind
enum HirKind
The underlying kind of an arbitrary Hir expression.
An HirKind is principally useful for doing case analysis on the type
of a regular expression. If you're looking to build new Hir values,
then you must use the smart constructors defined on Hir, like
Hir::repetition, to build new Hir values. The API intentionally does
not expose any way of building an Hir directly from an HirKind.
Variants
-
Empty The empty regular expression, which matches everything, including the empty string.
-
Literal(Literal) A literalstring that matches exactly these bytes.
-
Class(Class) A single character class that matches any of the characters in the class. A class can either consist of Unicode scalar values as characters, or it can use bytes.
A class may be empty. In which case, it matches nothing.
-
Look(Look) A look-around assertion. A look-around match always has zero length.
-
Repetition(Repetition) A repetition operation applied to a sub-expression.
-
Capture(Capture) A capturing group, which contains a sub-expression.
-
Concat(alloc::vec::Vec<Hir>) A concatenation of expressions.
A concatenation matches only if each of its sub-expressions match one after the other.
Concatenations are guaranteed by
Hir's smart constructors to always have at least two sub-expressions.-
Alternation(alloc::vec::Vec<Hir>) An alternation of expressions.
An alternation matches only if at least one of its sub-expressions match. If multiple sub-expressions match, then the leftmost is preferred.
Alternations are guaranteed by
Hir's smart constructors to always have at least two sub-expressions.
Implementations
impl HirKind
fn subs(self: &Self) -> &[Hir]Returns a slice of this kind's sub-expressions, if any.
impl Clone for HirKind
fn clone(self: &Self) -> HirKind
impl Debug for HirKind
fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result
impl Eq for HirKind
impl Freeze for HirKind
impl PartialEq for HirKind
fn eq(self: &Self, other: &HirKind) -> bool
impl RefUnwindSafe for HirKind
impl Send for HirKind
impl StructuralPartialEq for HirKind
impl Sync for HirKind
impl Unpin for HirKind
impl UnsafeUnpin for HirKind
impl UnwindSafe for HirKind
impl<T> Any for HirKind
fn type_id(self: &Self) -> TypeId
impl<T> Borrow for HirKind
fn borrow(self: &Self) -> &T
impl<T> BorrowMut for HirKind
fn borrow_mut(self: &mut Self) -> &mut T
impl<T> CloneToUninit for HirKind
unsafe fn clone_to_uninit(self: &Self, dest: *mut u8)
impl<T> From for HirKind
fn from(t: T) -> TReturns the argument unchanged.
impl<T> ToOwned for HirKind
fn to_owned(self: &Self) -> Tfn clone_into(self: &Self, target: &mut T)
impl<T, U> Into for HirKind
fn into(self: Self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom for HirKind
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto for HirKind
fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>