Size: a a a

2021 August 04

BV

Boris Vinogradov in Rust Async
Хм хм
источник

PL

Paul ❌ Loyd in Rust Async
О, наконец-то крейт запилили, а то руками приходится
источник

DF

Dollar Føølish in Rust Async
А смысле оно уже на стейбле работает этот крейт?
источник

D

Denis in Rust Async
да вроде
источник

DF

Dollar Føølish in Rust Async
Спасибо)
источник

m

mAX in Rust Async
Товарищи, подскажите пожалуйста..
не могу догнать как красиво сделать добавление в futures::select! новой фьючи по условию..
допустим в некоторых случаях нужно сделать select из двух разных фьюч, а в некоторых из трех.. как такое реализовать?
select!{} выполняет все, не понимаю как можно один в другой вложить например..
источник

IB

Ivan Boldyrev in Rust Async
Ну, можно одну заменять на футуру-заглушку, которая никогда не завершается (futures::futures::pending()).
источник

A

Aleksandr in Rust Async
select! генерирует вполне понятный код - можно на него посмотреть и добавить соуса по-вкусу
источник

IB

Ivan Boldyrev in Rust Async
Или сделать два селекта.
источник

m

mAX in Rust Async
да, спасибо, понятно, я нечто подобное делал, но как-то код некрасиво смотрится..
нету ли какой-нибудь возможности получить не значение после select!{} а фьючу и скомбинировать его еще с одним select!{}
источник

m

mAX in Rust Async
вот, да, я о таком
источник

IB

Ivan Boldyrev in Rust Async
Я имею ввиду, сделать два разных селекта в ветвях if.
источник

IB

Ivan Boldyrev in Rust Async
Есть ещё функция select.
источник

m

mAX in Rust Async
а, понял.. не, я подумал как-то так можно
let s_f = select!{} // но вот тут фьча нужна, чтобы внутри .await не вызывал этот селект
if val {
select!{ _ = s_f => {}, .... }
}
источник

m

mAX in Rust Async
источник

m

mAX in Rust Async
вроде бы работает
источник

IB

Ivan Boldyrev in Rust Async
let s_f = async { select! { ... } };
if val {
  select! { _ = s_f => {} }
} else {
  s_f.await;
}
источник

IB

Ivan Boldyrev in Rust Async
Если там просто флаг -- вполне.
источник

m

mAX in Rust Async
спасибо! да, вот это красивое и понятное.. мог бы и сам догадаться
с этим флагом мой пример странный, я таких конструкций не встречал)
источник

IB

Ivan Boldyrev in Rust Async
Просто это tokio::select, он поддерживает предусловия как раз для таких случаев.
источник