Trait futures_util::try_stream::TryStreamExt[][src]

pub trait TryStreamExt: TryStream {
    fn try_collect<C: Default + Extend<Self::Ok>>(self) -> TryCollect<Self, C>
    where
        Self: Sized
, { ... } }

Adapters specific to Result-returning streams

Provided Methods

Attempt to Collect all of the values of this stream into a vector, returning a future representing the result of that computation.

This combinator will collect all successful results of this stream and collect them into a Vec<Self::Item>. If an error happens then all collected elements will be dropped and the error will be returned.

The returned future will be resolved when the stream terminates.

This method is only available when the std feature of this library is activated, and it is activated by default.

Examples

use std::thread;

use futures::prelude::*;
use futures::channel::mpsc;
use futures::executor::block_on;

let (mut tx, rx) = mpsc::unbounded();

thread::spawn(move || {
    for i in (1..=5) {
        tx.unbounded_send(Ok(i)).unwrap();
    }
    tx.unbounded_send(Err(6)).unwrap();
});

let output: Result<Vec<i32>, i32> = block_on(rx.try_collect());
assert_eq!(output, Err(6));

Implementors