Size: a a a

2020 December 10

JM

John Meow in Rust Beginners
antuan
ха
thread 'tokio-runtime-worker' panicked at 'internal error: entered unreachable code: unexpected file: None', foo.rs:78:32
В плейграунде ты токио точно не включал
источник

a

antuan in Rust Beginners
John Meow
В плейграунде ты токио точно не включал
в плейграунде у меня всего лишь пример, который помог проиллюстрировать мой вопрос
источник

JM

John Meow in Rust Beginners
antuan
ха
thread 'tokio-runtime-worker' panicked at 'internal error: entered unreachable code: unexpected file: None', foo.rs:78:32
Но с этой ошибкой будет сложно помочь, не имея кода
источник

a

antuan in Rust Beginners
John Meow
Но с этой ошибкой будет сложно помочь, не имея кода
ок-ок, убедил
источник
2020 December 11

АК

Александр Караев... in Rust Beginners
Какая есть нормальная альтернатива async замыканиям в stable? Я бы обошёлся async функцией, но мне нужно захватывать кусок контекста. В одном конкретном случае удалось решить передачей доп. аргумента в функцию, но это прям костылище вышел
источник

IB

Ilya Bogdanov in Rust Beginners
почему замыкания не подходят?
источник

АК

Александр Караев... in Rust Beginners
Ilya Bogdanov
почему замыкания не подходят?
Подходят, но async || - unstable
источник

АК

Александр Караев... in Rust Beginners
Хотя я сейчас обнаружил, что кроме async || { ... } есть || async { ... }, который вроде как делает тоже самое. В чем отличие? Второе - это async блок внутри замыкания, как я понял.
источник

r

red75prime in Rust Beginners
Собственно async замыкание - это замыкание возвращающее impl Future
источник

АК

Александр Караев... in Rust Beginners
red75prime
Собственно async замыкание - это замыкание возвращающее impl Future
Как и async функция, я понимаю. Но замыкание умеет захватывать контекст
источник

АК

Александр Караев... in Rust Beginners
red75prime
Собственно async замыкание - это замыкание возвращающее impl Future
Или предлагается заменить async || на || -> impl Future ручками?
источник

r

red75prime in Rust Beginners
Александр Караев
Или предлагается заменить async || на || -> impl Future ручками?
|| async {} - это и есть || -> impl Future. Если добавить скобки, то это || { async {} }
источник

АК

Александр Караев... in Rust Beginners
red75prime
|| async {} - это и есть || -> impl Future. Если добавить скобки, то это || { async {} }
Понятно. Тогда зачем нужны async ||?
источник

IB

Ivan Boldyrev in Rust Beginners
Александр Караев
Понятно. Тогда зачем нужны async ||?
Более интуитивный и последовательный синтаксис.
источник

r

red75prime in Rust Beginners
Александр Караев
Понятно. Тогда зачем нужны async ||?
Подробно я не смотрел, но видимо как-то различаются способы захвата окружения. В || { async { } } два места где захватывается окружение - замыкание и асинк блок. Можно написать move || { async move { } }, например. В async || {} только одно (с синтаксической точки зрения). Ну и интуитивный синтаксис, да
источник

АК

Александр Караев... in Rust Beginners
Спасибо за ответы
источник

r

red75prime in Rust Beginners
Кстати тип move || { async {} } в общем случае не может быть ограничен существующими трейтами Fn и FnMut.
источник

V

V---V in Rust Beginners
Можно ли как-то обратиться к элементу кортежа внутри enum?
То есть,
let tpl = Title::Tpl(255, 255, 255);
// Как в println! обратиться к одному элементу?

enum Title {
   Tpl(u8, u8, u8),
}
источник

MB

Mikail Bagishov in Rust Beginners
Я не помню, но мб сработает так:
let Title::Tpl(a,b,c) = tpl;

Но непонятно, зачем тут енум.
источник

V

V---V in Rust Beginners
Mikail Bagishov
Я не помню, но мб сработает так:
let Title::Tpl(a,b,c) = tpl;

Но непонятно, зачем тут енум.
Это просто пример.
источник