Size: a a a

Rust — русскоговорящее сообществo

2020 March 28

а

а это кто in Rust — русскоговорящее сообществo
Ołeksij
мб кто-то делал это ... есть ли способ возвратить MutexGuard из функции где был вызван mutex.lock()?
Просто сделать return?
источник

АВ

Андрей Власов in Rust — русскоговорящее сообществo
Vlad Frolov
Если None, то пропускает элемент, а если Some, то T возвращается
Это ты про filter_map, наверное
источник

VF

Vlad Frolov in Rust — русскоговорящее сообществo
Андрей Власов
Это ты про filter_map, наверное
А, действительно, но эффект в итоге одинаковый 😃
источник

RP

Roman Proskuryakov in Rust — русскоговорящее сообществo
Ołeksij
мб кто-то делал это ... есть ли способ возвратить MutexGuard из функции где был вызван mutex.lock()?
он вот так объявлен - https://doc.rust-lang.org/stable/std/sync/struct.MutexGuard.html:

pub struct MutexGuard<'a, T: ?Sized + 'a> { /* fields omitted */ }
источник

АВ

Андрей Власов in Rust — русскоговорящее сообществo
Vlad Frolov
А, действительно, но эффект в итоге одинаковый 😃
Да)
источник

RP

Roman Proskuryakov in Rust — русскоговорящее сообществo
то есть он зависит от времени жизни мьютекса.
источник

D

Dima in Rust — русскоговорящее сообществo
Ołeksij
мб кто-то делал это ... есть ли способ возвратить MutexGuard из функции где был вызван mutex.lock()?
в parking_lot насколько я помню есть такая фича
источник

В

Вафель in Rust — русскоговорящее сообществo
Max Frai
Есть итератор, который возвращает Option. Как правильно использовать filter_map перед collect, чтобы проверить, что is_some и сразу же unwrap?
.filter_map(identity)
источник

В

Вафель in Rust — русскоговорящее сообществo
Casual tears
iter.flat_map(|x| x).collect::<Vec<_>>()?
.flat_map(identity) равносилен .flatten() , btw
источник

В

Вафель in Rust — русскоговорящее сообществo
Ołeksij
мб кто-то делал это ... есть ли способ возвратить MutexGuard из функции где был вызван mutex.lock()?
По идее можно, если у тебя mutex заимствован.
источник

AI

Alex Ilizarov in Rust — русскоговорящее сообществo
polunin.ai
u8 же
А чо за кейс что нельзя vec.truncate применить?
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Alex Ilizarov
А чо за кейс что нельзя vec.truncate применить?
а зачем? .set_len() быстрее будет
источник

AI

Alex Ilizarov in Rust — русскоговорящее сообществo
polunin.ai
а зачем? .set_len() быстрее будет
Ты это бенчмаркал? У тебя u8, какая разница?
источник

AI

Alex Ilizarov in Rust — русскоговорящее сообществo
Не надо юзать unsafe без острой необходимости
источник

AI

Alex Ilizarov in Rust — русскоговорящее сообществo
А то заберешь слайс из вектора, а потом сделаешь ему set_len
источник

p

polunin.ai in Rust — русскоговорящее сообществo
нет, это буфер для промежуточной записи. Много раз записывают, потом на flush() передается дальше, и все.
источник

AI

Alex Ilizarov in Rust — русскоговорящее сообществo
Не рискуй
источник

AI

Alex Ilizarov in Rust — русскоговорящее сообществo
На промежуточном буффере тоже можно лохануться проще простого
источник

AI

Alex Ilizarov in Rust — русскоговорящее сообществo
Есть же drain, его и юзай тогда.
источник

Ct

Casual tears in Rust — русскоговорящее сообществo
polunin.ai
а зачем? .set_len() быстрее будет
А clear()/truncate() значит медленные?
источник