1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
use super::IntoStream; use std::pin::Pin; /// Conversion from a `Stream`. /// /// By implementing `FromStream` for a type, you define how it will be created from a stream. /// This is common for types which describe a collection of some kind. /// /// See also: [`IntoStream`]. /// /// [`IntoStream`]: trait.IntoStream.html #[cfg_attr(feature = "docs", doc(cfg(unstable)))] #[cfg(any(feature = "unstable", feature = "docs"))] pub trait FromStream<T> { /// Creates a value from a stream. /// /// # Examples /// /// Basic usage: /// /// ``` /// // use async_std::stream::FromStream; /// /// // let _five_fives = async_std::stream::repeat(5).take(5); /// ``` fn from_stream<'a, S: IntoStream<Item = T> + 'a>( stream: S, ) -> Pin<Box<dyn core::future::Future<Output = Self> + 'a>>; }