Struct Repetition
struct Repetition { ... }
The high-level intermediate representation of a repetition operator.
A repetition operator permits the repetition of an arbitrary sub-expression.
Fields
min: u32The minimum range of the repetition.
Note that special cases like
?,+and*all get translated into the ranges{0,1},{1,}and{0,}, respectively.When
minis zero, this expression can match the empty string regardless of what its sub-expression is.max: Option<u32>The maximum range of the repetition.
Note that when
maxisNone,minacts as a lower bound but where there is no upper bound. For something likex{5}where the min and max are equivalent,minwill be set to5andmaxwill be set toSome(5).greedy: boolWhether this repetition operator is greedy or not. A greedy operator will match as much as it can. A non-greedy operator will match as little as it can.
Typically, operators are greedy by default and are only non-greedy when a
?suffix is used, e.g.,(expr)*is greedy while(expr)*?is not. However, this can be inverted via theU"ungreedy" flag.sub: Box<Hir>The expression being repeated.
Implementations
impl Repetition
fn with(self: &Self, sub: Hir) -> RepetitionReturns a new repetition with the same
min,maxandgreedyvalues, but with its sub-expression replaced with the one given.
impl Clone for Repetition
fn clone(self: &Self) -> Repetition
impl Debug for Repetition
fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result
impl Eq for Repetition
impl Freeze for Repetition
impl PartialEq for Repetition
fn eq(self: &Self, other: &Repetition) -> bool
impl RefUnwindSafe for Repetition
impl Send for Repetition
impl StructuralPartialEq for Repetition
impl Sync for Repetition
impl Unpin for Repetition
impl UnsafeUnpin for Repetition
impl UnwindSafe for Repetition
impl<T> Any for Repetition
fn type_id(self: &Self) -> TypeId
impl<T> Borrow for Repetition
fn borrow(self: &Self) -> &T
impl<T> BorrowMut for Repetition
fn borrow_mut(self: &mut Self) -> &mut T
impl<T> CloneToUninit for Repetition
unsafe fn clone_to_uninit(self: &Self, dest: *mut u8)
impl<T> From for Repetition
fn from(t: T) -> TReturns the argument unchanged.
impl<T> ToOwned for Repetition
fn to_owned(self: &Self) -> Tfn clone_into(self: &Self, target: &mut T)
impl<T, U> Into for Repetition
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 Repetition
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto for Repetition
fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>