IntoStringIter

Struct IntoStringIter 

Source
pub struct IntoStringIter<Ctx, Seq, Err = Infallible> { /* private fields */ }
Expand description

Turns a WritableSeq into an iterator over owned strings.

The iterator implementation calls InMemoryOutput::try_print_output for each writable produced by the sequence. It uses Rust’s async mechanics in order to invert control flow and produce lazy iteration, making sure to return complete futures from the crate::SequenceAccept when the iterator is ready to advance. However, this type expects a monopoly on such async control flow and may panic if extraneous async waiting is introduced.

Accordingly, this type is intended mainly for testing purposes, allowing the caller to check the output of their WritableSeq implementations.

§Iteration and Errors

The default error type is no error (infallible). However, the caller can specify a different error type in accordance with InMemoryOutput.

If any of the writable values produces an error, it is returned instead of the string for that item in the iterator. However, if the sequence itself produces an error, then the iterator will produce an error as its final item and stop.

§Panics

Iteration may panic if the sequence or any of its writable outputs returns a future that yields a pending poll based on external async computations (in particular, only pending polls caused by the iterative backpressure emitted from the crate::SequenceAccept implementation are allowed)

Implementations§

Source§

impl<Ctx, Seq, Err> IntoStringIter<Ctx, Seq, Err>

Source

pub fn new(context: Ctx, sequence: Seq) -> Self

Trait Implementations§

Source§

impl<Ctx, Seq, Err> Clone for IntoStringIter<Ctx, Seq, Err>
where Ctx: Clone, Seq: Clone,

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<Ctx, Seq, Err> Debug for IntoStringIter<Ctx, Seq, Err>
where Ctx: Debug, Seq: Debug,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<Ctx, Seq, Err> IntoIterator for IntoStringIter<Ctx, Seq, Err>
where Ctx: Context, Seq: WritableSeq<InMemoryOutput<Ctx, Err>>, Err: From<Infallible>,

Source§

type Item = Result<String, Err>

The type of the elements being iterated over.
Source§

type IntoIter = ToStringIter<Ctx, Seq, Err>

Which kind of iterator are we turning this into?
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more

Auto Trait Implementations§

§

impl<Ctx, Seq, Err> Freeze for IntoStringIter<Ctx, Seq, Err>
where Ctx: Freeze, Seq: Freeze,

§

impl<Ctx, Seq, Err> RefUnwindSafe for IntoStringIter<Ctx, Seq, Err>
where Ctx: RefUnwindSafe, Seq: RefUnwindSafe,

§

impl<Ctx, Seq, Err> Send for IntoStringIter<Ctx, Seq, Err>
where Ctx: Send, Seq: Send,

§

impl<Ctx, Seq, Err> Sync for IntoStringIter<Ctx, Seq, Err>
where Ctx: Sync, Seq: Sync,

§

impl<Ctx, Seq, Err> Unpin for IntoStringIter<Ctx, Seq, Err>
where Ctx: Unpin, Seq: Unpin,

§

impl<Ctx, Seq, Err> UnwindSafe for IntoStringIter<Ctx, Seq, Err>
where Ctx: UnwindSafe, Seq: UnwindSafe,

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.