Extend in async_std::stream - Rust (original) (raw)

pub trait Extend<A> {
    // Required method
    fn extend<'a, T: IntoStream<Item = A> + 'a>(
        &'a mut self,
        stream: T,
    ) -> Pin<Box<dyn Future<Output = ()> + Send + 'a>>
       where <T as IntoStream>::IntoStream: Send;
}

Available on unstable only.

Expand description

Extends a collection with the contents of a stream.

Streams produce a series of values asynchronously, and collections can also be thought of as a series of values. The Extend trait bridges this gap, allowing you to extend a collection asynchronously by including the contents of that stream. When extending a collection with an already existing key, that entry is updated or, in the case of collections that permit multiple entries with equal keys, that entry is inserted.

§Examples

use async_std::prelude::*;
use async_std::stream;

let mut v: Vec<usize> = vec![1, 2];
let s = stream::repeat(3usize).take(3);
stream::Extend::extend(&mut v, s).await;

assert_eq!(v, vec![1, 2, 3, 3, 3]);

Source

Extends a collection with the contents of a stream.

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Source§

Source§

Source§

Source§

Source§

Source§

Source§

Source§

Source§

Source§

Source§

Source§

Source§

Source§

Source§