pub trait ComposeFilterBuilder<W: Semiring, F1, F2, B1, B2, M1, M2>: Debug + Clone
where F1: Fst<W>, F2: Fst<W>, B1: Borrow<F1> + Debug, B2: Borrow<F2> + Debug, M1: Matcher<W, F1, B1>, M2: Matcher<W, F2, B2>,
{ type IM1: Matcher<W, F1, B1>; type IM2: Matcher<W, F2, B2>; type CF: ComposeFilter<W, F1, F2, B1, B2, Self::IM1, Self::IM2>; // Required methods fn new( fst1: B1, fst2: B2, matcher1: Option<M1>, matcher2: Option<M2> ) -> Result<Self> where Self: Sized; fn build(&self) -> Result<Self::CF>; }

Required Associated Types§

source

type IM1: Matcher<W, F1, B1>

source

type IM2: Matcher<W, F2, B2>

source

type CF: ComposeFilter<W, F1, F2, B1, B2, Self::IM1, Self::IM2>

Required Methods§

source

fn new( fst1: B1, fst2: B2, matcher1: Option<M1>, matcher2: Option<M2> ) -> Result<Self>
where Self: Sized,

source

fn build(&self) -> Result<Self::CF>

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<W, F1, F2, B1, B2, M1, M2> ComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2> for MatchComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2>
where W: Semiring, F1: Fst<W>, F2: Fst<W>, B1: Borrow<F1> + Debug, B2: Borrow<F2> + Debug, M1: Matcher<W, F1, B1>, M2: Matcher<W, F2, B2>,

§

type IM1 = M1

§

type IM2 = M2

§

type CF = MatchComposeFilter<W, F1, F2, B1, B2, M1, M2>

source§

impl<W, F1, F2, B1, B2, M1, M2> ComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2> for NoMatchComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2>
where W: Semiring, F1: Fst<W>, F2: Fst<W>, B1: Borrow<F1> + Debug, B2: Borrow<F2> + Debug, M1: Matcher<W, F1, B1>, M2: Matcher<W, F2, B2>,

§

type IM1 = M1

§

type IM2 = M2

§

type CF = NoMatchComposeFilter<W, F1, F2, B1, B2, M1, M2>

source§

impl<W, F1, F2, B1, B2, M1, M2> ComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2> for NullComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2>
where W: Semiring, F1: Fst<W>, F2: Fst<W>, B1: Borrow<F1> + Debug, B2: Borrow<F2> + Debug, M1: Matcher<W, F1, B1>, M2: Matcher<W, F2, B2>,

§

type IM1 = M1

§

type IM2 = M2

§

type CF = NullComposeFilter<W, F1, F2, B1, B2, M1, M2>

source§

impl<W, F1, F2, B1, B2, M1, M2> ComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2> for SequenceComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2>
where W: Semiring, F1: Fst<W>, F2: Fst<W>, B1: Borrow<F1> + Debug, B2: Borrow<F2> + Debug, M1: Matcher<W, F1, B1>, M2: Matcher<W, F2, B2>,

§

type IM1 = M1

§

type IM2 = M2

§

type CF = SequenceComposeFilter<W, F1, F2, B1, B2, M1, M2>

source§

impl<W, F1, F2, B1, B2, M1, M2> ComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2> for TrivialComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2>
where W: Semiring, F1: Fst<W>, F2: Fst<W>, B1: Borrow<F1> + Debug, B2: Borrow<F2> + Debug, M1: Matcher<W, F1, B1>, M2: Matcher<W, F2, B2>,

§

type IM1 = M1

§

type IM2 = M2

§

type CF = TrivialComposeFilter<W, F1, F2, B1, B2, M1, M2>

source§

impl<W, F1, F2, B1, B2, M1, M2, CFB, SMT> ComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2> for LookAheadComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2, CFB, SMT>
where W: Semiring, F1: Fst<W>, F2: Fst<W>, B1: Borrow<F1> + Debug + Clone, B2: Borrow<F2> + Debug + Clone, M1: LookaheadMatcher<W, F1, B1>, M2: LookaheadMatcher<W, F2, B2>, CFB: ComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2>, CFB::CF: LookAheadComposeFilterTrait<W, F1, F2, B1, B2, M1, M2>, SMT: MatchTypeTrait, LookAheadComposeFilter<W, F1, F2, B1, B2, M1, M2, CFB::CF, SMT>: ComposeFilter<W, F1, F2, B1, B2, M1, M2>,

§

type IM1 = M1

§

type IM2 = M2

§

type CF = LookAheadComposeFilter<W, F1, F2, B1, B2, M1, M2, <CFB as ComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2>>::CF, SMT>

source§

impl<W, F1, F2, B1, B2, M1, M2, CFB, SMT> ComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2> for PushLabelsComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2, CFB, SMT>
where W: Semiring, F1: Fst<W>, F2: Fst<W>, B1: Borrow<F1> + Debug + Clone, B2: Borrow<F2> + Debug + Clone, M1: LookaheadMatcher<W, F1, B1>, M2: LookaheadMatcher<W, F2, B2>, CFB: ComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2>, CFB::CF: LookAheadComposeFilterTrait<W, F1, F2, B1, B2, M1, M2>, SMT: MatchTypeTrait,

§

type IM1 = MultiEpsMatcher<W, F1, B1, M1>

§

type IM2 = MultiEpsMatcher<W, F2, B2, M2>

§

type CF = PushLabelsComposeFilter<W, F1, F2, B1, B2, M1, M2, <CFB as ComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2>>::CF, SMT>

source§

impl<W, F1, F2, B1, B2, M1, M2, CFB, SMT> ComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2> for PushWeightsComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2, CFB, SMT>
where W: SerializableSemiring + WeaklyDivisibleSemiring + WeightQuantize, F1: ExpandedFst<W>, F2: ExpandedFst<W>, B1: Borrow<F1> + Debug, B2: Borrow<F2> + Debug, M1: LookaheadMatcher<W, F1, B1>, M2: LookaheadMatcher<W, F2, B2>, CFB: ComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2>, CFB::CF: LookAheadComposeFilterTrait<W, F1, F2, B1, B2, M1, M2>, SMT: MatchTypeTrait,

§

type IM1 = M1

§

type IM2 = M2

§

type CF = PushWeightsComposeFilter<W, F1, F2, B1, B2, M1, M2, <CFB as ComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2>>::CF, SMT>

source§

impl<W: Semiring, F1, F2, B1, B2, M1, M2> ComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2> for AltSequenceComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2>
where F1: Fst<W>, F2: Fst<W>, B1: Borrow<F1> + Debug, B2: Borrow<F2> + Debug, M1: Matcher<W, F1, B1>, M2: Matcher<W, F2, B2>,

§

type IM1 = M1

§

type IM2 = M2

§

type CF = AltSequenceComposeFilter<W, F1, F2, B1, B2, M1, M2>