pub trait LookaheadMatcher<W: Semiring, F: Fst<W>, B: Borrow<F>>: Matcher<W, F, B> {
    type MatcherData: Clone;

    fn data(&self) -> Option<&Arc<Self::MatcherData>>;
    fn new_with_data(
        fst: B,
        match_type: MatchType,
        data: Option<Arc<Self::MatcherData>>
    ) -> Result<Self>
    where
        Self: Sized
; fn create_data<F2: Fst<W>, BF2: Borrow<F2>>(
        fst: BF2,
        match_type: MatchType
    ) -> Result<Option<Self::MatcherData>>; fn init_lookahead_fst<LF: Fst<W>, BLF: Borrow<LF> + Clone>(
        &mut self,
        lfst: &BLF
    ) -> Result<()>; fn lookahead_fst<LF: Fst<W>, BLF: Borrow<LF>>(
        &self,
        matcher_state: StateId,
        lfst: &BLF,
        lfst_state: StateId
    ) -> Result<Option<LookAheadMatcherData<W>>>; fn lookahead_label(&self, state: StateId, label: Label) -> Result<bool>; fn lookahead_prefix(
        &self,
        tr: &mut Tr<W>,
        la_matcher_data: &LookAheadMatcherData<W>
    ) -> bool; }

Required Associated Types

Required Methods

Implementors