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.