pub enum HirKind {
Empty,
Literal(Literal),
Class(Class),
Look(Look),
Repetition(Repetition),
Capture(Capture),
Concat(Vec<Hir>),
Alternation(Vec<Hir>),
}
Expand description
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(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(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.