Enum HirKind
pub 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 literal string 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.
Implementations
impl HirKind
fn subs(&self) -> &[Hir]Returns a slice of this kind's sub-expressions, if any.
Trait Implementations
impl Clone for HirKind
fn clone(&self) -> Self
impl Debug for HirKind
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl Eq for HirKind
impl PartialEq for HirKind
fn eq(&self, other: &Self) -> bool
impl StructuralPartialEq for HirKind
Auto Trait Implementations
impl Freeze for HirKind
impl RefUnwindSafe for HirKind
impl Send for HirKind
impl Sync for HirKind
impl Unpin for HirKind
impl UnsafeUnpin for HirKind
impl UnwindSafe for HirKind
Blanket Implementations
impl<T> Any for HirKind
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for HirKind
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for HirKind
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> CloneToUninit for HirKind
where
T: Clone,
unsafe fn clone_to_uninit(&self, dest: *mut u8)
impl<T> From<T> for HirKind
fn from(t: T) -> TReturns the argument unchanged.
impl<T> ToOwned for HirKind
where
T: Clone,
type Owned = T;fn to_owned(&self) -> Tfn clone_into(&self, target: &mut T)
impl<T, U> Into<U> for HirKind
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for HirKind
where
U: Into<T>,
type Error = never;fn try_from(value: U) -> Result<T, never>
impl<T, U> TryInto<U> for HirKind
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>