Skip to main content

LatticeBimorphismPull

Struct LatticeBimorphismPull 

Source
pub struct LatticeBimorphismPull<'a, Func, LhsPrev, RhsPrev, LhsState, RhsState, Output> { /* private fields */ }
Expand description

Pull combinator for lattice bimorphism operations.

Implementations§

Source§

impl<'a, Func, LhsPrev, RhsPrev, LhsState, RhsState, Output> LatticeBimorphismPull<'a, Func, LhsPrev, RhsPrev, LhsState, RhsState, Output>
where Func: 'a + LatticeBimorphism<LhsState, RhsPrev::Item, Output = Output> + LatticeBimorphism<LhsPrev::Item, RhsState, Output = Output>, LhsPrev: 'a + FusedPull, RhsPrev: 'a + FusedPull, LhsState: 'static + Clone, RhsState: 'static + Clone, Output: Merge<Output>,

Source

pub fn new( lhs_prev: LhsPrev, rhs_prev: RhsPrev, func: Func, lhs_state: &'a RefCell<LhsState>, rhs_state: &'a RefCell<RhsState>, ) -> Self

Creates a new LatticeBimorphismPull.

Trait Implementations§

Source§

impl<'a, Func, LhsPrev, RhsPrev, LhsState, RhsState, Output> Pull for LatticeBimorphismPull<'a, Func, LhsPrev, RhsPrev, LhsState, RhsState, Output>
where Func: 'a + LatticeBimorphism<LhsState, RhsPrev::Item, Output = Output> + LatticeBimorphism<LhsPrev::Item, RhsState, Output = Output>, LhsPrev: 'a + FusedPull, RhsPrev: 'a + FusedPull, LhsState: 'static + Clone, RhsState: 'static + Clone, Output: Merge<Output>,

Source§

type Ctx<'ctx> = <<LhsPrev as Pull>::Ctx<'ctx> as Context<'ctx>>::Merged<<RhsPrev as Pull>::Ctx<'ctx>>

The context type required to poll this pull.
Source§

type Item = Output

The type of items yielded by this pull.
Source§

type Meta = ()

The metadata type associated with each item.
Source§

type CanPend = <<LhsPrev as Pull>::CanPend as Toggle>::Or<<RhsPrev as Pull>::CanPend>

Whether this pull can return [Step::Pending].
Source§

type CanEnd = <<LhsPrev as Pull>::CanEnd as Toggle>::And<<RhsPrev as Pull>::CanEnd>

Whether this pull can return [Step::Ended].
Source§

fn pull( self: Pin<&mut Self>, ctx: &mut Self::Ctx<'_>, ) -> Step<Self::Item, Self::Meta, Self::CanPend, Self::CanEnd>

Attempts to pull the next item from this stream.
§

fn size_hint(self: Pin<&Self>) -> (usize, Option<usize>)

Returns the bounds on the remaining length of the pull. Read more
§

fn by_ref(&mut self) -> &mut Self

Borrows this pull, allowing it to be used by reference.
§

fn enumerate(self) -> Enumerate<Self>
where Self: Sized,

Creates a pull which gives the current iteration count as well as the next value. Read more
§

fn filter<P>(self, predicate: P) -> Filter<Self, P>
where Self: Sized, P: FnMut(&Self::Item) -> bool,

Creates a pull which uses a closure to determine if an element should be yielded. Read more
§

fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>
where Self: Sized, F: FnMut(Self::Item) -> Option<B>,

Creates a pull that both filters and maps. Read more
§

fn flat_map<U, F>( self, f: F, ) -> FlatMap<Self, F, <U as IntoIterator>::IntoIter, Self::Meta>
where Self: Sized, F: FnMut(Self::Item) -> U, U: IntoIterator,

Creates a pull that works like map, but flattens nested structure. Read more
§

fn flatten( self, ) -> Flatten<Self, <Self::Item as IntoIterator>::IntoIter, Self::Meta>
where Self: Sized, Self::Item: IntoIterator,

Creates a pull that flattens nested structure. Read more
§

fn for_each<F>(self, f: F) -> ForEach<Self, F>
where Self: Sized, F: FnMut(Self::Item),

Creates a future which runs the given function on each element of a pull.
§

fn collect<C>(self) -> Collect<Self, C>
where Self: Sized, C: Default + Extend<Self::Item>,

Creates a future which collects all elements of a pull into a collection. Read more
§

fn fuse(self) -> impl for<'ctx> FusedPull
where Self: Sized,

Creates a pull that ends after the first None. Read more
§

fn inspect<F>(self, f: F) -> Inspect<Self, F>
where Self: Sized, F: FnMut(&Self::Item),

Does something with each element of a pull, passing the value on. Read more
§

fn map<B, F>(self, f: F) -> Map<Self, F>
where Self: Sized, F: FnMut(Self::Item) -> B,

Takes a closure and creates a pull that calls that closure on each element. Read more
§

fn send_sink<Push>(self, push: Push) -> SendSink<Self, Push>
where Self: Sized, Push: Sink<Self::Item>,

Creates a future that pulls all items and sends them into a [Sink].
§

fn skip(self, n: usize) -> Skip<Self>
where Self: Sized,

Creates a pull that skips the first n elements.
§

fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
where Self: Sized, P: FnMut(&Self::Item) -> bool,

Creates a pull that skips elements based on a predicate. Read more
§

fn take(self, n: usize) -> Take<Self>
where Self: Sized,

Creates a pull that yields the first n elements, or fewer if the underlying pull ends sooner.
§

fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
where Self: Sized, P: FnMut(&Self::Item) -> bool,

Creates a pull that yields elements based on a predicate. Read more
§

fn next(self) -> Next<Self>
where Self: Sized,

Creates a future that resolves with the next item from this pull. Read more
§

fn cross_singleton<SinglePull>( self, singleton_pull: SinglePull, ) -> CrossSingleton<Self, SinglePull, Option<<SinglePull as Pull>::Item>>
where Self: Sized, SinglePull: Pull, <SinglePull as Pull>::Item: Clone,

Crosses each item from this pull with a singleton value from another pull. Read more
§

fn cross_singleton_state<SinglePull>( self, singleton_pull: SinglePull, singleton_state: &mut Option<<SinglePull as Pull>::Item>, ) -> CrossSingleton<Self, SinglePull, &mut Option<<SinglePull as Pull>::Item>>
where Self: Sized, SinglePull: Pull, <SinglePull as Pull>::Item: Clone,

[Self::cross_singleton] with external state.
Source§

impl<'__pin, 'a, Func, LhsPrev, RhsPrev, LhsState, RhsState, Output> Unpin for LatticeBimorphismPull<'a, Func, LhsPrev, RhsPrev, LhsState, RhsState, Output>
where PinnedFieldsOf<__Origin<'__pin, 'a, Func, LhsPrev, RhsPrev, LhsState, RhsState, Output>>: Unpin,

Auto Trait Implementations§

§

impl<'a, Func, LhsPrev, RhsPrev, LhsState, RhsState, Output> Freeze for LatticeBimorphismPull<'a, Func, LhsPrev, RhsPrev, LhsState, RhsState, Output>
where LhsPrev: Freeze, RhsPrev: Freeze, Func: Freeze, Output: Freeze,

§

impl<'a, Func, LhsPrev, RhsPrev, LhsState, RhsState, Output> !RefUnwindSafe for LatticeBimorphismPull<'a, Func, LhsPrev, RhsPrev, LhsState, RhsState, Output>

§

impl<'a, Func, LhsPrev, RhsPrev, LhsState, RhsState, Output> !Send for LatticeBimorphismPull<'a, Func, LhsPrev, RhsPrev, LhsState, RhsState, Output>

§

impl<'a, Func, LhsPrev, RhsPrev, LhsState, RhsState, Output> !Sync for LatticeBimorphismPull<'a, Func, LhsPrev, RhsPrev, LhsState, RhsState, Output>

§

impl<'a, Func, LhsPrev, RhsPrev, LhsState, RhsState, Output> UnsafeUnpin for LatticeBimorphismPull<'a, Func, LhsPrev, RhsPrev, LhsState, RhsState, Output>
where LhsPrev: UnsafeUnpin, RhsPrev: UnsafeUnpin, Func: UnsafeUnpin, Output: UnsafeUnpin,

§

impl<'a, Func, LhsPrev, RhsPrev, LhsState, RhsState, Output> !UnwindSafe for LatticeBimorphismPull<'a, Func, LhsPrev, RhsPrev, LhsState, RhsState, Output>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 more
§

impl<T> ToSinkBuild for T

§

fn iter_to_sink_build(self) -> SendIterBuild<Self>
where Self: Sized + Iterator,

Starts a [SinkBuild] adaptor chain to send all items from self as an Iterator.
§

fn stream_to_sink_build(self) -> SendStreamBuild<Self>
where Self: Sized + Stream,

Starts a [SinkBuild] adaptor chain to send all items from self as a [Stream].
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more