Size: a a a

2020 December 24

NB

Nik Bond in Rust Beginners
а как называется фича типа Foo { a, b, ..Default::default() }? Это что-то захардкоженное для дефолта, или есть какой-то более общий случай?
источник

IB

Ivan Boldyrev in Rust Beginners
Nik Bond
а как называется фича типа Foo { a, b, ..Default::default() }? Это что-то захардкоженное для дефолта, или есть какой-то более общий случай?
Это называется struct update syntax, и вместо Default может быть другой инстанс.
источник

IB

Ivan Boldyrev in Rust Beginners
На самом деле это не update, а создание нового объекта.
источник

Jøhn Đøꝩsøn in Rust Beginners
Marat Khayrutdinov
Спасибо за совет. Разве что только не соглашусь с заменой “интерфейс” на “трейт”.
Трейты ближе к миксинам
источник

QH

Quantum Harmonizer in Rust Beginners
трейты топ, миксины фу)
источник

NB

Nik Bond in Rust Beginners
Ivan Boldyrev
Это называется struct update syntax, и вместо Default может быть другой инстанс.
Т.е. либо default, либо другой объект этого типа? Захардкожено в компиляторе?
источник

IB

Ivan Boldyrev in Rust Beginners
Nik Bond
Т.е. либо default, либо другой объект этого типа? Захардкожено в компиляторе?
Того же типа, что и создаваемая структура. В случае Default просто происходит выведение типов до нужного.
источник

NB

Nik Bond in Rust Beginners
Спс
источник

NB

Nik Bond in Rust Beginners
Алсо, а как можно посмотреть дифф между текущим стейблом и найтли?
Допустим, я какой-нибудь пет-проджект создаю, и интересно поиграться с тем что не могу пока заюзать в серьезных проектах. Собственно, где можно глянуть список игрушек?)
источник

K

Kitsu in Rust Beginners
Nik Bond
Алсо, а как можно посмотреть дифф между текущим стейблом и найтли?
Допустим, я какой-нибудь пет-проджект создаю, и интересно поиграться с тем что не могу пока заюзать в серьезных проектах. Собственно, где можно глянуть список игрушек?)
https://doc.rust-lang.org/beta/unstable-book/
В выводе диффа ты почти наверное утонешь, а вот тут перечисленны все фичи доступные в найтли, но еще нестабилизированные
источник

NB

Nik Bond in Rust Beginners
А, точно. Спасибо)
источник

K

Kitsu in Rust Beginners
еще в доке стдлибы есть (но очевидно не все из списка), например интринсики: https://doc.rust-lang.org/std/intrinsics/index.html
источник

AP

Andrey Pushkar in Rust Beginners
Andrey Pushkar
Всем привет! Скажите, пожалуйста, есть ли для сериализации что-то быстрее bincode, но не такое стремное, как abomonation? Мессаджи у меня по 3-5 мегабайт, сейчас с bincode в дебаге на десериализацию 3 Мб уходит 600-800 мс, в релизе на порядок меньше - в районе 10 мс, но хотелось бы еще на порядок ужаться. Спасибо!
Внезапно нашел в доках по serde атрибут #[serde(with = "serde_bytes")], который снизил время десериализации до 2 мс в дебаге (!)
источник

Д

Дима in Rust Beginners
Здравствуйте, начал недавно изучать rust, но хочется чутка попрактиковаться, но вот идей нет совершенно, мб подкините что-нибудь
источник

IB

Ivan Boldyrev in Rust Beginners
Andrey Pushkar
Внезапно нашел в доках по serde атрибут #[serde(with = "serde_bytes")], который снизил время десериализации до 2 мс в дебаге (!)
Потому что данные читаются как байтовые строки, и не происходит валидации utf-8, как для str?
источник

IB

Ivan Boldyrev in Rust Beginners
Andrey Pushkar
Всем привет! Скажите, пожалуйста, есть ли для сериализации что-то быстрее bincode, но не такое стремное, как abomonation? Мессаджи у меня по 3-5 мегабайт, сейчас с bincode в дебаге на десериализацию 3 Мб уходит 600-800 мс, в релизе на порядок меньше - в районе 10 мс, но хотелось бы еще на порядок ужаться. Спасибо!
Вообще у таким вопросам нужно прикладывать результаты профайлера. Откуда мы знаем, какие у тебя данные?
источник

AP

Andrey Pushkar in Rust Beginners
Ivan Boldyrev
Потому что данные читаются как байтовые строки, и не происходит валидации utf-8, как для str?
В доках к крейту serde_bytes написано "Without specialization, Rust forces Serde to treat &[u8] just like any other slice and Vec<u8> just like any other vector. In reality this particular slice and vector can often be serialized and deserialized in a more efficient, compact representation in many formats.", так что за ответом, видимо, нужно внутрь bincode смотреть, а не самого serde
источник

AP

Andrey Pushkar in Rust Beginners
Ivan Boldyrev
Вообще у таким вопросам нужно прикладывать результаты профайлера. Откуда мы знаем, какие у тебя данные?
Так а какие еще данные профайлинга могут быть релевантными? :) Размер данных, сколько было в релизе/дебаге и сколько стало в дебаге я упомянул
источник

IB

Ivan Boldyrev in Rust Beginners
Andrey Pushkar
Так а какие еще данные профайлинга могут быть релевантными? :) Размер данных, сколько было в релизе/дебаге и сколько стало в дебаге я упомянул
На что тратится время. На аллокации? Проверки utf-8 (понял, у тебя из нет)? Ещё что-то?
источник

Jøhn Đøꝩsøn in Rust Beginners
Дима
Здравствуйте, начал недавно изучать rust, но хочется чутка попрактиковаться, но вот идей нет совершенно, мб подкините что-нибудь
источник