pub struct ExprMap<T>where
T: LSend,{ /* private fields */ }
Expand description
A map from an Expr
to arbitrary data.
It has been a common pattern for rule authors to build a list of expressions that match a grammatical error. Then, depending on which expression was matched, a suggestion is chosen from another list.
The ExprMap
unifies these two lists into one.
A great example of this is the PronounInfectionBe
rule.
It builds a list of incorrect PRONOUN + BE
combinations, alongside their corrections.
When used as a Expr
in and of itself, it simply iterates through
all contained expressions, returning the first match found.
You should not assume this search is deterministic.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl<T> Freeze for ExprMap<T>
impl<T> !RefUnwindSafe for ExprMap<T>
impl<T> !Send for ExprMap<T>
impl<T> !Sync for ExprMap<T>
impl<T> Unpin for ExprMap<T>where
T: Unpin,
impl<T> !UnwindSafe for ExprMap<T>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<E> ExprExt for E
impl<E> ExprExt for E
Source§fn iter_matches<'a>(
&'a self,
tokens: &'a [Token],
source: &'a [char],
) -> Box<dyn Iterator<Item = Span<Token>> + 'a>
fn iter_matches<'a>( &'a self, tokens: &'a [Token], source: &'a [char], ) -> Box<dyn Iterator<Item = Span<Token>> + 'a>
fn iter_matches_in_doc<'a>( &'a self, doc: &'a Document, ) -> Box<dyn Iterator<Item = Span<Token>> + 'a>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<E> OwnedExprExt for Ewhere
E: Expr + 'static,
impl<E> OwnedExprExt for Ewhere
E: Expr + 'static,
Source§fn or(self, other: impl Expr + 'static) -> FirstMatchOf
fn or(self, other: impl Expr + 'static) -> FirstMatchOf
Returns an expression that matches either the current one or the expression contained in other
.
Source§fn or_longest(self, other: impl Expr + 'static) -> LongestMatchOf
fn or_longest(self, other: impl Expr + 'static) -> LongestMatchOf
Returns an expression that matches the longest of the current one or the expression contained in other
.
If you don’t need the longest match, prefer using the short-circuiting [Self::or()
] instead.