Size: a a a

2021 April 30

IL

Ilya Lakhin in Rust Async
Короче, как я понимаю, задача по-простому не решается?
источник

PL

Paul ❌ Loyd in Rust Async
Ну это довольно простое решение
источник

IL

Ilya Lakhin in Rust Async
(с ансейфами и прочими трансмутациями мутить не очень хочется, грешновато)
источник

PL

Paul ❌ Loyd in Rust Async
Ещё можно на ассоциированные const заменить, и вычислить второе в компайлтайме
источник

PL

Paul ❌ Loyd in Rust Async
Cached не требует unsafe
источник

IL

Ilya Lakhin in Rust Async
А можно поподробнее?
источник

PL

Paul ❌ Loyd in Rust Async
Пишешь const fn to_lowercase. К сожалению, пока вызвать соответствующие функции из стд не получится, надо самому.
А потом уже

impl Foo for X {
   const LOWER_CASE_NAME = to_lowercase(Self::NAME)
}


По идее и с const fn работало бы, но я не помню, они в trait в стейбле уже или нет
источник

K

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

K

Kitsu in Rust Async
чегот не очень удобно выходит, я забыл что у Any::type_id есть self аргумент
источник

PL

Paul ❌ Loyd in Rust Async
TypeId::of?
источник

K

Kitsu in Rust Async
точняк да, спасибо
источник

r

red75prime in Rust Async
tokio::io::unix::AsyncFd использует level triggered epoll или edge triggered? Может кто-нибудь знает навскидку? В исходниках долго копаться.
источник

ph

pl 🦑 hk in Rust Async
Mio 0.7 только edge, afair
источник

К

Крывашек in Rust Async
Именно так и есть.
источник

r

red75prime in Rust Async
Понял, спасибо. Значит придётся как-то выкручиваться с одним кривым девайсом.
источник

K

Kitsu in Rust Async
вообще раньше был и level, и oneshot
убрали шоль?
источник

К

Крывашек in Rust Async
Убрали в целях унификации.
источник

К

Крывашек in Rust Async
Можно почитать в changelog (вообще, там ссылка на основное объяснение, ссылку на которое сейчас лениво искать).
источник

К

Крывашек in Rust Async
Кстати, они там пишут, что делать, если фактически требуется обрабатывать level.
источник

K

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