Источник: Документация futures-lite::stream
Комбинаторы для трейта Stream.
#![allow(unused)]
fn main() {
use futures_lite::stream::{self, StreamExt};
let mut s = stream::iter(vec![1, 2, 3]);
assert_eq!(s.next().await, Some(1));
assert_eq!(s.next().await, Some(2));
assert_eq!(s.next().await, Some(3));
assert_eq!(s.next().await, None);
}
| Структура | Описание |
AllFuture | Фьючерс для метода StreamExt::all() |
AnyFuture | Фьючерс для метода StreamExt::any() |
BlockOn | Итератор для функции block_on() |
Chain | Поток для метода StreamExt::chain() |
Cloned | Поток для метода StreamExt::cloned() |
CollectFuture | Фьючерс для метода StreamExt::collect() |
Copied | Поток для метода StreamExt::copied() |
CountFuture | Фьючерс для метода StreamExt::count() |
Cycle | Поток для метода StreamExt::cycle() |
Drain | Поток для метода StreamExt::drain() |
Empty | Поток для функции empty() |
Enumerate | Поток для метода StreamExt::enumerate() |
Filter | Поток для метода StreamExt::filter() |
FilterMap | Поток для метода StreamExt::filter_map() |
FindFuture | Фьючерс для метода StreamExt::find() |
FindMapFuture | Фьючерс для метода StreamExt::find_map() |
FlatMap | Поток для метода StreamExt::flat_map() |
Flatten | Поток для метода StreamExt::flatten() |
FoldFuture | Фьючерс для метода StreamExt::fold() |
ForEachFuture | Фьючерс для метода StreamExt::for_each() |
Fuse | Поток для метода StreamExt::fuse() |
Inspect | Поток для метода StreamExt::inspect() |
Iter | Поток для функции iter() |
LastFuture | Фьючерс для метода StreamExt::last() |
Map | Поток для метода StreamExt::map() |
NextFuture | Фьючерс для метода StreamExt::next() |
NthFuture | Фьючерс для метода StreamExt::nth() |
Once | Поток для функции once() |
OnceFuture | Поток для функции once_future() |
Or | Поток для функции or() и метода StreamExt::or() |
PartitionFuture | Фьючерс для метода StreamExt::partition() |
Pending | Поток для функции pending() |
PollFn | Поток для функции poll_fn() |
PositionFuture | Фьючерс для метода StreamExt::position() |
Race | Поток для функции race() и метода StreamExt::race() |
Repeat | Поток для функции repeat() |
RepeatWith | Поток для функции repeat_with() |
Scan | Поток для метода StreamExt::scan() |
Skip | Поток для метода StreamExt::skip() |
SkipWhile | Поток для метода StreamExt::skip_while() |
StepBy | Поток для метода StreamExt::step_by() |
Take | Поток для метода StreamExt::take() |
TakeWhile | Поток для метода StreamExt::take_while() |
Then | Поток для метода StreamExt::then() |
TryCollectFuture | Фьючерс для метода StreamExt::try_collect() |
TryFoldFuture | Фьючерс для метода StreamExt::try_fold() |
TryForEachFuture | Фьючерс для метода StreamExt::try_for_each() |
TryNextFuture | Фьючерс для метода StreamExt::try_next() |
TryUnfold | Поток для функции try_unfold() |
Unfold | Поток для функции unfold() |
UnzipFuture | Фьючерс для метода StreamExt::unzip() |
Zip | Поток для метода StreamExt::zip() |
| Трейт | Описание |
Stream | Поток значений, производимых асинхронно |
StreamExt | Трейт-расширение для Stream |
| Функция | Описание |
block_on | Преобразует поток в блокирующий итератор |
empty | Создает пустой поток |
iter | Создает поток из итератора |
once | Создает поток, который выдает один элемент |
once_future | Создает поток, который вызывает заданный фьючерс как свой первый элемент, а затем больше не производит элементов |
or | Объединяет два потока, предпочитая элементы из stream1, когда оба потока готовы |
pending | Создает поток, который всегда находится в состоянии ожидания |
poll_fn | Создает поток из функции, возвращающей Poll |
race | Объединяет два потока без предпочтений, когда оба готовы |
race_with_seed | Соревнует два потока, но с предоставленным пользователем сидом для случайности |
repeat | Создает бесконечный поток, который повторно выдает один и тот же элемент |
repeat_with | Создает бесконечный поток из замыкания, генерирующего элементы |
try_unfold | Создает поток из начального значения и замыкания с возможностью ошибки, работающего с ним |
unfold | Создает поток из начального значения и асинхронного замыкания, работающего с ним |
| Псевдоним | Описание |
Boxed | Псевдоним типа для Pin<Box<dyn Stream<Item = T> + Send + 'static>> |
BoxedLocal | Псевдоним типа для Pin<Box<dyn Stream<Item = T> + 'static>> |