Trait Transducer

Source
pub trait Transducer {
    type Input;
    type Output;
    type State;

    // Required methods
    fn start(&self) -> Self::State;
    fn relation(
        &self,
        state: &Self::State,
        input: &Self::Input,
    ) -> Option<(Self::State, Self::Output)>;
    fn accept(&self, state: &Self::State) -> bool;

    // Provided methods
    fn stepout(&mut self) { ... }
    fn dp<M>(self, init: M::T) -> InitTransducerDp<M, Self>
       where Self: Sized,
             M: Monoid { ... }
    fn intersection<U>(self, other: U) -> IntersectionTransducer<(Self, U)>
       where Self: Sized,
             U: Transducer<Input = Self::Input> { ... }
    fn product<U>(self, other: U) -> ProductTransducer<(Self, U)>
       where Self: Sized,
             U: Transducer { ... }
    fn chain<U>(self, other: U) -> ChainTransducer<(Self, U)>
       where Self: Sized,
             U: Transducer<Input = Self::Output> { ... }
    fn with_input(
        self,
    ) -> IntersectionTransducer<(Self, IdentityTransducer<Self::Input>)>
       where Self: Sized { ... }
    fn map<U, F>(
        self,
        f: F,
    ) -> ChainTransducer<(Self, MapTransducer<Self::Output, U, F>)>
       where Self: Sized,
             F: Fn(&Self::Output) -> U { ... }
    fn filter_map<U, F>(
        self,
        f: F,
    ) -> ChainTransducer<(Self, FilterMapTransducer<Self::Output, U, F>)>
       where Self: Sized,
             F: Fn(&Self::Output) -> Option<U> { ... }
}

Required Associated Types§

Required Methods§

Source

fn start(&self) -> Self::State

Source

fn relation( &self, state: &Self::State, input: &Self::Input, ) -> Option<(Self::State, Self::Output)>

Source

fn accept(&self, state: &Self::State) -> bool

Provided Methods§

Source

fn stepout(&mut self)

Examples found in repository?
crates/competitive/src/data_structure/transducer.rs (line 207)
190    pub fn step<S, I, B>(&mut self, mut sigma: S)
191    where
192        S: FnMut() -> I,
193        I: IntoIterator<Item = B>,
194        B: Borrow<T::Input>,
195    {
196        for (state, value) in self.dp.drain() {
197            for input in sigma() {
198                if let Some((nstate, _)) = self.fst.relation(&state, input.borrow()) {
199                    self.ndp
200                        .entry(nstate)
201                        .and_modify(|acc| M::operate_assign(acc, &value))
202                        .or_insert_with(|| value.clone());
203                }
204            }
205        }
206        swap(&mut self.dp, &mut self.ndp);
207        self.fst.stepout();
208    }
209    pub fn step_effect<S, I, B, F>(&mut self, mut sigma: S, mut effect: F)
210    where
211        S: FnMut() -> I,
212        I: IntoIterator<Item = B>,
213        B: Borrow<T::Input>,
214        F: FnMut(&M::T, &T::Output) -> M::T,
215    {
216        for (state, value) in self.dp.drain() {
217            for input in sigma() {
218                if let Some((nstate, output)) = self.fst.relation(&state, input.borrow()) {
219                    let nvalue = effect(&value, &output);
220                    self.ndp
221                        .entry(nstate)
222                        .and_modify(|acc| M::operate_assign(acc, &nvalue))
223                        .or_insert(nvalue);
224                }
225            }
226        }
227        swap(&mut self.dp, &mut self.ndp);
228        self.fst.stepout();
229    }
Source

fn dp<M>(self, init: M::T) -> InitTransducerDp<M, Self>
where Self: Sized, M: Monoid,

Source

fn intersection<U>(self, other: U) -> IntersectionTransducer<(Self, U)>
where Self: Sized, U: Transducer<Input = Self::Input>,

Source

fn product<U>(self, other: U) -> ProductTransducer<(Self, U)>
where Self: Sized, U: Transducer,

Source

fn chain<U>(self, other: U) -> ChainTransducer<(Self, U)>
where Self: Sized, U: Transducer<Input = Self::Output>,

Source

fn with_input( self, ) -> IntersectionTransducer<(Self, IdentityTransducer<Self::Input>)>
where Self: Sized,

Source

fn map<U, F>( self, f: F, ) -> ChainTransducer<(Self, MapTransducer<Self::Output, U, F>)>
where Self: Sized, F: Fn(&Self::Output) -> U,

Source

fn filter_map<U, F>( self, f: F, ) -> ChainTransducer<(Self, FilterMapTransducer<Self::Output, U, F>)>
where Self: Sized, F: Fn(&Self::Output) -> Option<U>,

Implementors§

Source§

impl<A> Transducer for AlwaysAcceptingTransducer<A>

Source§

impl<A, T0> Transducer for IntersectionTransducer<(T0,)>
where T0: Transducer<Input = A>,

Source§

type Input = A

Source§

type Output = (<T0 as Transducer>::Output,)

Source§

type State = (<T0 as Transducer>::State,)

Source§

impl<A, T0, T1> Transducer for IntersectionTransducer<(T0, T1)>
where T0: Transducer<Input = A>, T1: Transducer<Input = A>,

Source§

type Input = A

Source§

type Output = (<T0 as Transducer>::Output, <T1 as Transducer>::Output)

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State)

Source§

impl<A, T0, T1, T2> Transducer for IntersectionTransducer<(T0, T1, T2)>
where T0: Transducer<Input = A>, T1: Transducer<Input = A>, T2: Transducer<Input = A>,

Source§

type Input = A

Source§

type Output = (<T0 as Transducer>::Output, <T1 as Transducer>::Output, <T2 as Transducer>::Output)

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State, <T2 as Transducer>::State)

Source§

impl<A, T0, T1, T2, T3> Transducer for IntersectionTransducer<(T0, T1, T2, T3)>
where T0: Transducer<Input = A>, T1: Transducer<Input = A>, T2: Transducer<Input = A>, T3: Transducer<Input = A>,

Source§

type Input = A

Source§

type Output = (<T0 as Transducer>::Output, <T1 as Transducer>::Output, <T2 as Transducer>::Output, <T3 as Transducer>::Output)

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State, <T2 as Transducer>::State, <T3 as Transducer>::State)

Source§

impl<A, T0, T1, T2, T3, T4> Transducer for IntersectionTransducer<(T0, T1, T2, T3, T4)>
where T0: Transducer<Input = A>, T1: Transducer<Input = A>, T2: Transducer<Input = A>, T3: Transducer<Input = A>, T4: Transducer<Input = A>,

Source§

type Input = A

Source§

type Output = (<T0 as Transducer>::Output, <T1 as Transducer>::Output, <T2 as Transducer>::Output, <T3 as Transducer>::Output, <T4 as Transducer>::Output)

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State, <T2 as Transducer>::State, <T3 as Transducer>::State, <T4 as Transducer>::State)

Source§

impl<A, T0, T1, T2, T3, T4, T5> Transducer for IntersectionTransducer<(T0, T1, T2, T3, T4, T5)>
where T0: Transducer<Input = A>, T1: Transducer<Input = A>, T2: Transducer<Input = A>, T3: Transducer<Input = A>, T4: Transducer<Input = A>, T5: Transducer<Input = A>,

Source§

type Input = A

Source§

type Output = (<T0 as Transducer>::Output, <T1 as Transducer>::Output, <T2 as Transducer>::Output, <T3 as Transducer>::Output, <T4 as Transducer>::Output, <T5 as Transducer>::Output)

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State, <T2 as Transducer>::State, <T3 as Transducer>::State, <T4 as Transducer>::State, <T5 as Transducer>::State)

Source§

impl<A, T0, T1, T2, T3, T4, T5, T6> Transducer for IntersectionTransducer<(T0, T1, T2, T3, T4, T5, T6)>
where T0: Transducer<Input = A>, T1: Transducer<Input = A>, T2: Transducer<Input = A>, T3: Transducer<Input = A>, T4: Transducer<Input = A>, T5: Transducer<Input = A>, T6: Transducer<Input = A>,

Source§

type Input = A

Source§

type Output = (<T0 as Transducer>::Output, <T1 as Transducer>::Output, <T2 as Transducer>::Output, <T3 as Transducer>::Output, <T4 as Transducer>::Output, <T5 as Transducer>::Output, <T6 as Transducer>::Output)

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State, <T2 as Transducer>::State, <T3 as Transducer>::State, <T4 as Transducer>::State, <T5 as Transducer>::State, <T6 as Transducer>::State)

Source§

impl<A, T0, T1, T2, T3, T4, T5, T6, T7> Transducer for IntersectionTransducer<(T0, T1, T2, T3, T4, T5, T6, T7)>
where T0: Transducer<Input = A>, T1: Transducer<Input = A>, T2: Transducer<Input = A>, T3: Transducer<Input = A>, T4: Transducer<Input = A>, T5: Transducer<Input = A>, T6: Transducer<Input = A>, T7: Transducer<Input = A>,

Source§

type Input = A

Source§

type Output = (<T0 as Transducer>::Output, <T1 as Transducer>::Output, <T2 as Transducer>::Output, <T3 as Transducer>::Output, <T4 as Transducer>::Output, <T5 as Transducer>::Output, <T6 as Transducer>::Output, <T7 as Transducer>::Output)

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State, <T2 as Transducer>::State, <T3 as Transducer>::State, <T4 as Transducer>::State, <T5 as Transducer>::State, <T6 as Transducer>::State, <T7 as Transducer>::State)

Source§

impl<A, T0, T1, T2, T3, T4, T5, T6, T7, T8> Transducer for IntersectionTransducer<(T0, T1, T2, T3, T4, T5, T6, T7, T8)>
where T0: Transducer<Input = A>, T1: Transducer<Input = A>, T2: Transducer<Input = A>, T3: Transducer<Input = A>, T4: Transducer<Input = A>, T5: Transducer<Input = A>, T6: Transducer<Input = A>, T7: Transducer<Input = A>, T8: Transducer<Input = A>,

Source§

type Input = A

Source§

type Output = (<T0 as Transducer>::Output, <T1 as Transducer>::Output, <T2 as Transducer>::Output, <T3 as Transducer>::Output, <T4 as Transducer>::Output, <T5 as Transducer>::Output, <T6 as Transducer>::Output, <T7 as Transducer>::Output, <T8 as Transducer>::Output)

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State, <T2 as Transducer>::State, <T3 as Transducer>::State, <T4 as Transducer>::State, <T5 as Transducer>::State, <T6 as Transducer>::State, <T7 as Transducer>::State, <T8 as Transducer>::State)

Source§

impl<A, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Transducer for IntersectionTransducer<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)>
where T0: Transducer<Input = A>, T1: Transducer<Input = A>, T2: Transducer<Input = A>, T3: Transducer<Input = A>, T4: Transducer<Input = A>, T5: Transducer<Input = A>, T6: Transducer<Input = A>, T7: Transducer<Input = A>, T8: Transducer<Input = A>, T9: Transducer<Input = A>,

Source§

type Input = A

Source§

type Output = (<T0 as Transducer>::Output, <T1 as Transducer>::Output, <T2 as Transducer>::Output, <T3 as Transducer>::Output, <T4 as Transducer>::Output, <T5 as Transducer>::Output, <T6 as Transducer>::Output, <T7 as Transducer>::Output, <T8 as Transducer>::Output, <T9 as Transducer>::Output)

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State, <T2 as Transducer>::State, <T3 as Transducer>::State, <T4 as Transducer>::State, <T5 as Transducer>::State, <T6 as Transducer>::State, <T7 as Transducer>::State, <T8 as Transducer>::State, <T9 as Transducer>::State)

Source§

impl<I> Transducer for IdentityTransducer<I>
where I: Clone,

Source§

impl<I, A> Transducer for IteratorTransducer<I, A>
where I: Iterator, I::Item: Clone,

Source§

impl<I, O, S, F, G, H> Transducer for FunctionalTransducer<I, O, S, F, G, H>
where F: Fn() -> S, G: Fn(&S, &I) -> Option<(S, O)>, H: Fn(&S) -> bool,

Source§

type Input = I

Source§

type Output = O

Source§

type State = S

Source§

impl<M> Transducer for MonoidalTransducer<M>
where M: Monoid,

Source§

type Input = <M as Magma>::T

Source§

type Output = ()

Source§

type State = <M as Magma>::T

Source§

impl<T0> Transducer for ChainTransducer<(T0,)>
where T0: Transducer,

Source§

impl<T0> Transducer for ProductTransducer<(T0,)>
where T0: Transducer,

Source§

type Input = (<T0 as Transducer>::Input,)

Source§

type Output = (<T0 as Transducer>::Output,)

Source§

type State = (<T0 as Transducer>::State,)

Source§

impl<T0, T1> Transducer for ChainTransducer<(T0, T1)>
where T0: Transducer, T1: Transducer<Input = T0::Output>,

Source§

type Input = <T0 as Transducer>::Input

Source§

type Output = <T1 as Transducer>::Output

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State)

Source§

impl<T0, T1> Transducer for ProductTransducer<(T0, T1)>
where T0: Transducer, T1: Transducer,

Source§

type Input = (<T0 as Transducer>::Input, <T1 as Transducer>::Input)

Source§

type Output = (<T0 as Transducer>::Output, <T1 as Transducer>::Output)

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State)

Source§

impl<T0, T1, T2> Transducer for ChainTransducer<(T0, T1, T2)>
where T0: Transducer, T1: Transducer<Input = T0::Output>, T2: Transducer<Input = T1::Output>,

Source§

type Input = <T0 as Transducer>::Input

Source§

type Output = <T2 as Transducer>::Output

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State, <T2 as Transducer>::State)

Source§

impl<T0, T1, T2> Transducer for ProductTransducer<(T0, T1, T2)>
where T0: Transducer, T1: Transducer, T2: Transducer,

Source§

type Input = (<T0 as Transducer>::Input, <T1 as Transducer>::Input, <T2 as Transducer>::Input)

Source§

type Output = (<T0 as Transducer>::Output, <T1 as Transducer>::Output, <T2 as Transducer>::Output)

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State, <T2 as Transducer>::State)

Source§

impl<T0, T1, T2, T3> Transducer for ChainTransducer<(T0, T1, T2, T3)>
where T0: Transducer, T1: Transducer<Input = T0::Output>, T2: Transducer<Input = T1::Output>, T3: Transducer<Input = T2::Output>,

Source§

type Input = <T0 as Transducer>::Input

Source§

type Output = <T3 as Transducer>::Output

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State, <T2 as Transducer>::State, <T3 as Transducer>::State)

Source§

impl<T0, T1, T2, T3> Transducer for ProductTransducer<(T0, T1, T2, T3)>
where T0: Transducer, T1: Transducer, T2: Transducer, T3: Transducer,

Source§

type Input = (<T0 as Transducer>::Input, <T1 as Transducer>::Input, <T2 as Transducer>::Input, <T3 as Transducer>::Input)

Source§

type Output = (<T0 as Transducer>::Output, <T1 as Transducer>::Output, <T2 as Transducer>::Output, <T3 as Transducer>::Output)

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State, <T2 as Transducer>::State, <T3 as Transducer>::State)

Source§

impl<T0, T1, T2, T3, T4> Transducer for ChainTransducer<(T0, T1, T2, T3, T4)>
where T0: Transducer, T1: Transducer<Input = T0::Output>, T2: Transducer<Input = T1::Output>, T3: Transducer<Input = T2::Output>, T4: Transducer<Input = T3::Output>,

Source§

type Input = <T0 as Transducer>::Input

Source§

type Output = <T4 as Transducer>::Output

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State, <T2 as Transducer>::State, <T3 as Transducer>::State, <T4 as Transducer>::State)

Source§

impl<T0, T1, T2, T3, T4> Transducer for ProductTransducer<(T0, T1, T2, T3, T4)>
where T0: Transducer, T1: Transducer, T2: Transducer, T3: Transducer, T4: Transducer,

Source§

type Input = (<T0 as Transducer>::Input, <T1 as Transducer>::Input, <T2 as Transducer>::Input, <T3 as Transducer>::Input, <T4 as Transducer>::Input)

Source§

type Output = (<T0 as Transducer>::Output, <T1 as Transducer>::Output, <T2 as Transducer>::Output, <T3 as Transducer>::Output, <T4 as Transducer>::Output)

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State, <T2 as Transducer>::State, <T3 as Transducer>::State, <T4 as Transducer>::State)

Source§

impl<T0, T1, T2, T3, T4, T5> Transducer for ChainTransducer<(T0, T1, T2, T3, T4, T5)>
where T0: Transducer, T1: Transducer<Input = T0::Output>, T2: Transducer<Input = T1::Output>, T3: Transducer<Input = T2::Output>, T4: Transducer<Input = T3::Output>, T5: Transducer<Input = T4::Output>,

Source§

type Input = <T0 as Transducer>::Input

Source§

type Output = <T5 as Transducer>::Output

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State, <T2 as Transducer>::State, <T3 as Transducer>::State, <T4 as Transducer>::State, <T5 as Transducer>::State)

Source§

impl<T0, T1, T2, T3, T4, T5> Transducer for ProductTransducer<(T0, T1, T2, T3, T4, T5)>
where T0: Transducer, T1: Transducer, T2: Transducer, T3: Transducer, T4: Transducer, T5: Transducer,

Source§

type Input = (<T0 as Transducer>::Input, <T1 as Transducer>::Input, <T2 as Transducer>::Input, <T3 as Transducer>::Input, <T4 as Transducer>::Input, <T5 as Transducer>::Input)

Source§

type Output = (<T0 as Transducer>::Output, <T1 as Transducer>::Output, <T2 as Transducer>::Output, <T3 as Transducer>::Output, <T4 as Transducer>::Output, <T5 as Transducer>::Output)

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State, <T2 as Transducer>::State, <T3 as Transducer>::State, <T4 as Transducer>::State, <T5 as Transducer>::State)

Source§

impl<T0, T1, T2, T3, T4, T5, T6> Transducer for ChainTransducer<(T0, T1, T2, T3, T4, T5, T6)>
where T0: Transducer, T1: Transducer<Input = T0::Output>, T2: Transducer<Input = T1::Output>, T3: Transducer<Input = T2::Output>, T4: Transducer<Input = T3::Output>, T5: Transducer<Input = T4::Output>, T6: Transducer<Input = T5::Output>,

Source§

type Input = <T0 as Transducer>::Input

Source§

type Output = <T6 as Transducer>::Output

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State, <T2 as Transducer>::State, <T3 as Transducer>::State, <T4 as Transducer>::State, <T5 as Transducer>::State, <T6 as Transducer>::State)

Source§

impl<T0, T1, T2, T3, T4, T5, T6> Transducer for ProductTransducer<(T0, T1, T2, T3, T4, T5, T6)>
where T0: Transducer, T1: Transducer, T2: Transducer, T3: Transducer, T4: Transducer, T5: Transducer, T6: Transducer,

Source§

type Input = (<T0 as Transducer>::Input, <T1 as Transducer>::Input, <T2 as Transducer>::Input, <T3 as Transducer>::Input, <T4 as Transducer>::Input, <T5 as Transducer>::Input, <T6 as Transducer>::Input)

Source§

type Output = (<T0 as Transducer>::Output, <T1 as Transducer>::Output, <T2 as Transducer>::Output, <T3 as Transducer>::Output, <T4 as Transducer>::Output, <T5 as Transducer>::Output, <T6 as Transducer>::Output)

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State, <T2 as Transducer>::State, <T3 as Transducer>::State, <T4 as Transducer>::State, <T5 as Transducer>::State, <T6 as Transducer>::State)

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> Transducer for ChainTransducer<(T0, T1, T2, T3, T4, T5, T6, T7)>
where T0: Transducer, T1: Transducer<Input = T0::Output>, T2: Transducer<Input = T1::Output>, T3: Transducer<Input = T2::Output>, T4: Transducer<Input = T3::Output>, T5: Transducer<Input = T4::Output>, T6: Transducer<Input = T5::Output>, T7: Transducer<Input = T6::Output>,

Source§

type Input = <T0 as Transducer>::Input

Source§

type Output = <T7 as Transducer>::Output

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State, <T2 as Transducer>::State, <T3 as Transducer>::State, <T4 as Transducer>::State, <T5 as Transducer>::State, <T6 as Transducer>::State, <T7 as Transducer>::State)

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> Transducer for ProductTransducer<(T0, T1, T2, T3, T4, T5, T6, T7)>

Source§

type Input = (<T0 as Transducer>::Input, <T1 as Transducer>::Input, <T2 as Transducer>::Input, <T3 as Transducer>::Input, <T4 as Transducer>::Input, <T5 as Transducer>::Input, <T6 as Transducer>::Input, <T7 as Transducer>::Input)

Source§

type Output = (<T0 as Transducer>::Output, <T1 as Transducer>::Output, <T2 as Transducer>::Output, <T3 as Transducer>::Output, <T4 as Transducer>::Output, <T5 as Transducer>::Output, <T6 as Transducer>::Output, <T7 as Transducer>::Output)

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State, <T2 as Transducer>::State, <T3 as Transducer>::State, <T4 as Transducer>::State, <T5 as Transducer>::State, <T6 as Transducer>::State, <T7 as Transducer>::State)

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Transducer for ChainTransducer<(T0, T1, T2, T3, T4, T5, T6, T7, T8)>
where T0: Transducer, T1: Transducer<Input = T0::Output>, T2: Transducer<Input = T1::Output>, T3: Transducer<Input = T2::Output>, T4: Transducer<Input = T3::Output>, T5: Transducer<Input = T4::Output>, T6: Transducer<Input = T5::Output>, T7: Transducer<Input = T6::Output>, T8: Transducer<Input = T7::Output>,

Source§

type Input = <T0 as Transducer>::Input

Source§

type Output = <T8 as Transducer>::Output

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State, <T2 as Transducer>::State, <T3 as Transducer>::State, <T4 as Transducer>::State, <T5 as Transducer>::State, <T6 as Transducer>::State, <T7 as Transducer>::State, <T8 as Transducer>::State)

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Transducer for ProductTransducer<(T0, T1, T2, T3, T4, T5, T6, T7, T8)>

Source§

type Input = (<T0 as Transducer>::Input, <T1 as Transducer>::Input, <T2 as Transducer>::Input, <T3 as Transducer>::Input, <T4 as Transducer>::Input, <T5 as Transducer>::Input, <T6 as Transducer>::Input, <T7 as Transducer>::Input, <T8 as Transducer>::Input)

Source§

type Output = (<T0 as Transducer>::Output, <T1 as Transducer>::Output, <T2 as Transducer>::Output, <T3 as Transducer>::Output, <T4 as Transducer>::Output, <T5 as Transducer>::Output, <T6 as Transducer>::Output, <T7 as Transducer>::Output, <T8 as Transducer>::Output)

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State, <T2 as Transducer>::State, <T3 as Transducer>::State, <T4 as Transducer>::State, <T5 as Transducer>::State, <T6 as Transducer>::State, <T7 as Transducer>::State, <T8 as Transducer>::State)

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Transducer for ChainTransducer<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)>
where T0: Transducer, T1: Transducer<Input = T0::Output>, T2: Transducer<Input = T1::Output>, T3: Transducer<Input = T2::Output>, T4: Transducer<Input = T3::Output>, T5: Transducer<Input = T4::Output>, T6: Transducer<Input = T5::Output>, T7: Transducer<Input = T6::Output>, T8: Transducer<Input = T7::Output>, T9: Transducer<Input = T8::Output>,

Source§

type Input = <T0 as Transducer>::Input

Source§

type Output = <T9 as Transducer>::Output

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State, <T2 as Transducer>::State, <T3 as Transducer>::State, <T4 as Transducer>::State, <T5 as Transducer>::State, <T6 as Transducer>::State, <T7 as Transducer>::State, <T8 as Transducer>::State, <T9 as Transducer>::State)

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Transducer for ProductTransducer<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)>

Source§

type Input = (<T0 as Transducer>::Input, <T1 as Transducer>::Input, <T2 as Transducer>::Input, <T3 as Transducer>::Input, <T4 as Transducer>::Input, <T5 as Transducer>::Input, <T6 as Transducer>::Input, <T7 as Transducer>::Input, <T8 as Transducer>::Input, <T9 as Transducer>::Input)

Source§

type Output = (<T0 as Transducer>::Output, <T1 as Transducer>::Output, <T2 as Transducer>::Output, <T3 as Transducer>::Output, <T4 as Transducer>::Output, <T5 as Transducer>::Output, <T6 as Transducer>::Output, <T7 as Transducer>::Output, <T8 as Transducer>::Output, <T9 as Transducer>::Output)

Source§

type State = (<T0 as Transducer>::State, <T1 as Transducer>::State, <T2 as Transducer>::State, <T3 as Transducer>::State, <T4 as Transducer>::State, <T5 as Transducer>::State, <T6 as Transducer>::State, <T7 as Transducer>::State, <T8 as Transducer>::State, <T9 as Transducer>::State)

Source§

impl<T> Transducer for EqualTransducer<T>
where T: PartialEq,

Source§

impl<T> Transducer for LexicographicalTransducer<T>
where T: Ord,

Source§

impl<T> Transducer for RevLexicographicalTransducer<T>
where T: Ord,

Source§

impl<T, A> Transducer for RevSequenceTransducer<'_, T, A>
where T: Clone,

Source§

impl<T, A> Transducer for SequenceTransducer<'_, T, A>
where T: Clone,

Source§

impl<T, U, F> Transducer for FilterMapTransducer<T, U, F>
where F: Fn(&T) -> Option<U>,

Source§

impl<T, U, F> Transducer for MapTransducer<T, U, F>
where F: Fn(&T) -> U,