Skip to main content

TryTools

Trait TryTools 

Source
pub trait TryTools<T, E, S>
where S: TryStream<Ok = T, Error = E, Item = Result<T, E>> + ?Sized, Self: TryStream + Sized,
{ // Required methods fn try_take( self, n: usize, ) -> TryTakeWhile<Self, Ready<Result<bool, S::Error>>, impl FnMut(&S::Ok) -> Ready<Result<bool, S::Error>>>; fn try_unzip<FromA, FromB>( self, ) -> impl Future<Output = Result<(FromA, FromB), S::Error>> where (FromA, FromB): Default + Extend<T>; }
Expand description

Adds general-purpose operations to fallible streams.

Operations preserve the source error type and process successful items in source order. They support limiting the stream and collecting successful pairs.

Required Methods§

Source

fn try_take( self, n: usize, ) -> TryTakeWhile<Self, Ready<Result<bool, S::Error>>, impl FnMut(&S::Ok) -> Ready<Result<bool, S::Error>>>

Limits the stream to at most n successful items.

After yielding n successes, the adapter consumes one additional success to detect the limit. Earlier source errors are still forwarded; with zero, they precede consumption of the first unyielded success.

Source

fn try_unzip<FromA, FromB>( self, ) -> impl Future<Output = Result<(FromA, FromB), S::Error>>

Collects successful pairs into two collections.

Collections are extended in source order, starting from their defaults. The first source error ends the fold without returning partial collections.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<T, E, S> TryTools<T, E, S> for S
where S: TryStream<Ok = T, Error = E, Item = Result<T, E>> + ?Sized, Self: TryStream + Sized,