futures_util/stream/
mod.rs1#[cfg(feature = "alloc")]
13pub use futures_core::stream::{BoxStream, LocalBoxStream};
14pub use futures_core::stream::{FusedStream, Stream, TryStream};
15
16#[allow(clippy::module_inception)]
19mod stream;
20pub use self::stream::{
21 Chain, Collect, Concat, Cycle, Enumerate, Filter, FilterMap, FlatMap, Flatten, Fold, ForEach,
22 Fuse, Inspect, Map, Next, NextIf, NextIfEq, Peek, PeekMut, Peekable, Scan, SelectNextSome,
23 Skip, SkipWhile, StreamExt, StreamFuture, Take, TakeUntil, TakeWhile, Then, Unzip, Zip,
24};
25
26#[cfg(feature = "std")]
27pub use self::stream::CatchUnwind;
28
29#[cfg(feature = "alloc")]
30pub use self::stream::Chunks;
31
32#[cfg(feature = "alloc")]
33pub use self::stream::ReadyChunks;
34
35#[cfg(feature = "sink")]
36#[cfg_attr(docsrs, doc(cfg(feature = "sink")))]
37pub use self::stream::Forward;
38
39#[cfg(not(futures_no_atomic_cas))]
40#[cfg(feature = "alloc")]
41pub use self::stream::{BufferUnordered, Buffered, ForEachConcurrent};
42
43#[cfg(not(futures_no_atomic_cas))]
44#[cfg(feature = "sink")]
45#[cfg_attr(docsrs, doc(cfg(feature = "sink")))]
46#[cfg(feature = "alloc")]
47pub use self::stream::{ReuniteError, SplitSink, SplitStream};
48
49mod try_stream;
50pub use self::try_stream::{
51 try_unfold, AndThen, ErrInto, InspectErr, InspectOk, IntoStream, MapErr, MapOk, OrElse,
52 TryCollect, TryConcat, TryFilter, TryFilterMap, TryFlatten, TryFold, TryForEach, TryNext,
53 TrySkipWhile, TryStreamExt, TryTakeWhile, TryUnfold,
54};
55
56#[cfg(feature = "io")]
57#[cfg_attr(docsrs, doc(cfg(feature = "io")))]
58#[cfg(feature = "std")]
59pub use self::try_stream::IntoAsyncRead;
60
61#[cfg(not(futures_no_atomic_cas))]
62#[cfg(feature = "alloc")]
63pub use self::try_stream::{TryBufferUnordered, TryBuffered, TryForEachConcurrent};
64
65#[cfg(feature = "alloc")]
66pub use self::try_stream::{TryChunks, TryChunksError};
67
68mod iter;
71pub use self::iter::{iter, Iter};
72
73mod repeat;
74pub use self::repeat::{repeat, Repeat};
75
76mod repeat_with;
77pub use self::repeat_with::{repeat_with, RepeatWith};
78
79mod empty;
80pub use self::empty::{empty, Empty};
81
82mod once;
83pub use self::once::{once, Once};
84
85mod pending;
86pub use self::pending::{pending, Pending};
87
88mod poll_fn;
89pub use self::poll_fn::{poll_fn, PollFn};
90
91mod poll_immediate;
92pub use self::poll_immediate::{poll_immediate, PollImmediate};
93
94mod select;
95pub use self::select::{select, Select};
96
97mod select_with_strategy;
98pub use self::select_with_strategy::{select_with_strategy, PollNext, SelectWithStrategy};
99
100mod unfold;
101pub use self::unfold::{unfold, Unfold};
102
103#[cfg(not(futures_no_atomic_cas))]
104#[cfg(feature = "alloc")]
105mod futures_ordered;
106#[cfg(not(futures_no_atomic_cas))]
107#[cfg(feature = "alloc")]
108pub use self::futures_ordered::FuturesOrdered;
109
110#[cfg(not(futures_no_atomic_cas))]
111#[cfg(feature = "alloc")]
112pub mod futures_unordered;
113#[cfg(not(futures_no_atomic_cas))]
114#[cfg(feature = "alloc")]
115#[doc(inline)]
116pub use self::futures_unordered::FuturesUnordered;
117
118#[cfg(not(futures_no_atomic_cas))]
119#[cfg(feature = "alloc")]
120pub mod select_all;
121#[cfg(not(futures_no_atomic_cas))]
122#[cfg(feature = "alloc")]
123#[doc(inline)]
124pub use self::select_all::{select_all, SelectAll};
125
126#[cfg(not(futures_no_atomic_cas))]
127#[cfg(feature = "alloc")]
128mod abortable;
129#[cfg(not(futures_no_atomic_cas))]
130#[cfg(feature = "alloc")]
131pub use crate::abortable::{AbortHandle, AbortRegistration, Abortable, Aborted};
132#[cfg(not(futures_no_atomic_cas))]
133#[cfg(feature = "alloc")]
134pub use abortable::abortable;
135
136pub(crate) fn assert_stream<T, S>(stream: S) -> S
139where
140 S: Stream<Item = T>,
141{
142 stream
143}