HirKind in regex_syntax::hir - Rust (original) (raw)

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, likeHir::repetition, to build new Hir values. The API intentionally does not expose any way of building an Hir directly from an HirKind.

§

The empty regular expression, which matches everything, including the empty string.

§

A literalstring that matches exactly these bytes.

§

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.

§

A look-around assertion. A look-around match always has zero length.

§

A repetition operation applied to a sub-expression.

§

A capturing group, which contains a sub-expression.

§

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.

§

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.

Source§

Source

Returns a slice of this kind’s sub-expressions, if any.

Source§

Source§

Source§

Source§

Tests for self and other values to be equal, and is used by ==.

1.0.0 · Source§

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Source§

Source§

§

§

§

§

§

§