Size: a a a

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

2020 September 02

PP

Pavel Pisligin in Rust — русскоговорящее сообществo
ну и replace по ключу
слияние массивов, если ключ одинаковый
источник

PP

Pavel Pisligin in Rust — русскоговорящее сообществo
Подобие Newtonsoft, если знакомо
источник

K

Kitsu in Rust — русскоговорящее сообществo
Pavel Pisligin
{ "A": 1 }
+
{"B": "privet":}
=
{"A": 1, "B": "privet"}
struct X {
 a: i32
}

struct Y {
 b: String
}

struct Complex {
 #[serde(flatten)]
 x: X,
 #[serde(flatten)]
 y: Y,
}
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Pavel Pisligin
Всем привет
Кто-нибудь может плз подсказать, есть ли человеческий способ мержа джсонов в расте?
источник

PP

Pavel Pisligin in Rust — русскоговорящее сообществo
выглядит подходяще)
источник

PP

Pavel Pisligin in Rust — русскоговорящее сообществo
пасиб, ребят
источник

GA

Goga Asoka in Rust — русскоговорящее сообществo
Привет. Подскажите, какой самый эффективный способ пропустить ошибку в цикле и перейти на следующую иттерацию?
я делел так:
match f {
Err(e) => continue,
Ok(m) => ...
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Goga Asoka
Привет. Подскажите, какой самый эффективный способ пропустить ошибку в цикле и перейти на следующую иттерацию?
я делел так:
match f {
Err(e) => continue,
Ok(m) => ...
Можно
if let Ok(m) = f { ... }
источник

VK

Vasily Kondratyev in Rust — русскоговорящее сообществo
Ну, или while let
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Vasily Kondratyev
Ну, или while let
Нет, это другое
источник

/

/bin/cat in Rust — русскоговорящее сообществo
Есть еще filter_map
источник

VK

Vasily Kondratyev in Rust — русскоговорящее сообществo
вафель 🧇
Нет, это другое
Точно! Не додумал.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Goga Asoka
Привет. Подскажите, какой самый эффективный способ пропустить ошибку в цикле и перейти на следующую иттерацию?
я делел так:
match f {
Err(e) => continue,
Ok(m) => ...
Самый эффективный — filter_map, потому что он имплементит try_fold и fold через try_fold и fold используемого итератора.
источник

/

/bin/cat in Rust — русскоговорящее сообществo
Если раст умеет его хорошо инлайнить, то это самый эффективный и красивый метод
источник

Э

Эрик in Rust — русскоговорящее сообществo
Но если ты используешь loop/while/for, то разницы никакой не будет.
источник

/

/bin/cat in Rust — русскоговорящее сообществo
Если нет, тогда только красивый)
источник

Э

Эрик in Rust — русскоговорящее сообществo
А если ты пишешь через try_fold или один из производных: fold, try_for_each, for_each, то на неудобных для LLVM итераторах будет побыстрее.
источник

GA

Goga Asoka in Rust — русскоговорящее сообществo
У меня просто цикл, пытающийся расшифровать 50 000 сообщений чужим приватным 4096 битным ключом, как тест. Пока, то что я написал выполняется 4.5 мин. Не знаю, на сколько сильнее можно это оптимизировать и имеет ли смысл
источник

Э

Эрик in Rust — русскоговорящее сообществo
Goga Asoka
У меня просто цикл, пытающийся расшифровать 50 000 сообщений чужим приватным 4096 битным ключом, как тест. Пока, то что я написал выполняется 4.5 мин. Не знаю, на сколько сильнее можно это оптимизировать и имеет ли смысл
Аллокации и алгоритмы.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Итераторы это микро-оптимизации, да и если ты итерируешься по слайсе, то там вообще никакой разницы между for и .for_each() нет.
источник