Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Модуль future

Источник: Документация futures-lite::future

Комбинаторы для трейта Future.

Примеры

#![allow(unused)]
fn main() {
use futures_lite::future;

for step in 0..3 {
    println!("step {}", step);

    // Даем другим задачам шанс выполниться.
    future::yield_now().await;
}
}

Структуры

СтруктураОписание
CatchUnwindФьючерс для метода FutureExt::catch_unwind()
OrФьючерс для функции or() и метода FutureExt::or()
PendingСоздает фьючерс, который никогда не разрешается, представляя вычисление, которое никогда не завершается
PollFnФьючерс для функции poll_fn()
PollOnceФьючерс для функции poll_once()
RaceФьючерс для функции race() и метода FutureExt::race()
ReadyФьючерс, который сразу готов со значением
TryZipФьючерс для функции try_zip()
YieldNowФьючерс для функции yield_now()
ZipФьючерс для функции zip()

Трейты

ТрейтОписание
FutureФьючерс представляет асинхронное вычисление, обычно получаемое с помощью async
FutureExtТрейт-расширение для Future

Функции

ФункцияОписание
block_onБлокирует текущий поток на фьючерсе
orВозвращает результат фьючерса, который завершится первым, с предпочтением future1, если оба готовы
pendingСоздает фьючерс, который никогда не разрешается, представляя вычисление, которое никогда не завершается
poll_fnСоздает фьючерс из функции, возвращающей Poll
poll_onceОпрашивает фьючерс всего один раз и возвращает Option с результатом
raceВозвращает результат фьючерса, который завершится первым, без предпочтений, если оба готовы
race_with_seedСоревнует два фьючерса, но с предопределенным случайным сидом
readyСоздает фьючерс, который сразу готов со значением
try_zipОбъединяет два фьючерса с возможностью ошибки, ожидая завершения обоих или ошибки одного из них
yield_nowБудит текущую задачу и возвращает Poll::Pending один раз
zipОбъединяет два фьючерса, ожидая завершения обоих

Псевдонимы типов

ПсевдонимОписание
BoxedПсевдоним типа для Pin<Box<dyn Future<Output = T> + Send + 'static>>
BoxedLocalПсевдоним типа для Pin<Box<dyn Future<Output = T> + 'static>>