Size: a a a

2020 December 02

m

magras in Rust Async
Mikola Summer Duck
> В плюсах благодаря asymmetric transfer мы можем прыгать из одной корутины в другую
В смысле горизонтально?
Да, в том числе горизонтально. В момент suspend'а плюсовая корутина может вернуть handle любой корутины и управление будет передано в нее.
источник

MS

Mikola Summer Duck in Rust Async
Тогда это симетрик трансфер.
источник

MS

Mikola Summer Duck in Rust Async
Асиметрик подразумевает что мы умеем прыгать только вертикально.
источник

m

magras in Rust Async
Mikola Summer Duck
Тогда это симетрик трансфер.
Извиняюсь, запутался в терминологии.
источник

MS

Mikola Summer Duck in Rust Async
А я теперь понял о чём ты говорил. А то совсем запутался 😅
источник

MS

Mikola Summer Duck in Rust Async
https://crates.io/crates/lofi
Тем временем, новый релиз с ломающими изменениями API. Кондуиты никогда не были нужны так как тот способ работы со стейтом который они изначально собирались предоставлять невозможен в современном расте.

Теперь получить доступ к стейту тика можно просто через lofi::state::with(|s: State| { ... }).
источник

p

polunin.ai in Rust Async
можно как-то сделать комбинатор для футуры T -> U, T: Into<U> без создания собственной структуры для футуры?
источник

MB

Mikail Bagishov in Rust Async
.map(Into::into)?
источник

p

polunin.ai in Rust Async
fn into_fut<F, Fut, T, U>(f: F) -> impl Fn() -> Map<Fut, impl Fn(T) -> U> {
 || f().map(|t| t.into())
}
это не работает из-за вложенных impl Fn
источник

MB

Mikail Bagishov in Rust Async
Ну пока реализовывать Fn для собственных нельзя, думаю нужно писать комбинатор для футур руками
(А с fn_traits можно сделать именуемый коллбэк T -> U и давать его вместо Into::into)
источник

p

polunin.ai in Rust Async
комбинатор для футур руками значит нужно ебаться со всякими пинами а мне этого не надо, задача не та.
источник

MB

Mikail Bagishov in Rust Async
Еще можно вместо impl Fn(T) -> U написать fn(T)->U
источник

K

Konstantin in Rust Async
polunin.ai
можно как-то сделать комбинатор для футуры T -> U, T: Into<U> без создания собственной структуры для футуры?
Где-то видел map_into() недавно
источник

K

Konstantin in Rust Async
polunin.ai
можно как-то сделать комбинатор для футуры T -> U, T: Into<U> без создания собственной структуры для футуры?
источник

p

polunin.ai in Rust Async
о, похоже на то. спасибо.
источник

MB

Mikail Bagishov in Rust Async
А мне кажется или MapInto забыли экспортировать?
источник

K

Konstantin in Rust Async
Mikail Bagishov
А мне кажется или MapInto забыли экспортировать?
В смысле? Это метод трейта FutureExt. Только его и надо импортнуть.
источник

в🧇

вафель 🧇 in Rust Async
Konstantin
В смысле? Это метод трейта FutureExt. Только его и надо импортнуть.
источник

MB

Mikail Bagishov in Rust Async
Konstantin
В смысле? Это метод трейта FutureExt. Только его и надо импортнуть.
Если я хочу записать результат этого метода в переменную, то не смогу явно указать ее тип
источник

p

polunin.ai in Rust Async
Mikail Bagishov
Если я хочу записать результат этого метода в переменную, то не смогу явно указать ее тип
да можно там. это в futures_util. дока че-то поехала крышей.
источник