Skip to main content

Generator

Trait Generator 

Source
pub trait Generator<R = ()> {
    type Yield;
    type Return;

    // Required method
    fn resume(
        self: Pin<&mut Self>,
        value: R,
    ) -> GeneratorState<Self::Yield, Self::Return>;
}

Required Associated Types§

Required Methods§

Source

fn resume( self: Pin<&mut Self>, value: R, ) -> GeneratorState<Self::Yield, Self::Return>

Implementations on Foreign Types§

Source§

impl<R, G> Generator<R> for &mut G
where G: Generator<R> + ?Sized + Unpin,

Source§

type Return = <G as Generator<R>>::Return

Source§

type Yield = <G as Generator<R>>::Yield

Source§

fn resume( self: Pin<&mut Self>, value: R, ) -> GeneratorState<Self::Yield, Self::Return>

Source§

impl<R, P> Generator<R> for Pin<P>
where P: DerefMut<Target: Generator<R>>,

Source§

type Return = <<P as Deref>::Target as Generator<R>>::Return

Source§

type Yield = <<P as Deref>::Target as Generator<R>>::Yield

Source§

fn resume( self: Pin<&mut Self>, value: R, ) -> GeneratorState<Self::Yield, Self::Return>

Implementors§

Source§

impl<A, B, R> Generator<R> for Compose<A, B>
where A: Generator<R>, B: Generator<A::Yield>,

Source§

type Return = Either<<A as Generator<R>>::Return, <B as Generator<<A as Generator<R>>::Yield>>::Return>

Source§

type Yield = <B as Generator<<A as Generator<R>>::Yield>>::Yield

Source§

impl<G, F, R, U> Generator<R> for MapComplete<G, F>
where G: Generator<R>, F: FnOnce(G::Return) -> U,

Source§

type Yield = <G as Generator<R>>::Yield

Source§

type Return = U