/
germanubis
/
sqlx
Обзор
Документация
Войти
/
germanubis
/
sqlx
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
sqlx-core/src/rt/rt_async_io/timeout.rs
20 строк
573 B
martin-kolarik
Smol+async global executor 1.80 dev (#3791)
08 сен 2025, 21:17
Не верифицирован
08 сен 2025, 21:17
6b828e6
Код
Авторство
О чём код?
use std::{future::Future, pin::pin, time::Duration}; use futures_util::future::{select, Either}; use crate::rt::TimeoutError; pub async fn sleep(duration: Duration) { timeout_future(duration).await; } pub async fn timeout<F: Future>(duration: Duration, future: F) -> Result<F::Output, TimeoutError> { match select(pin!(future), timeout_future(duration)).await { Either::Left((result, _)) => Ok(result), Either::Right(_) => Err(TimeoutError), } } fn timeout_future(duration: Duration) -> impl Future { async_io::Timer::after(duration) }