Size: a a a

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

2020 April 07

p

polunin.ai in Rust — русскоговорящее сообществo
как думаете, в бесплатную версию завезут когда-то?
источник

Ct

Casual tears in Rust — русскоговорящее сообществo
Kitsu
А есть какие-то фундаментальные причины, почему аргументы у типа функции не coerc-ятся в референсы, e.g. Fn(T) => Fn(&T) / Fn(&mut T)? Или просто никто не сделал?
Вроде уже делали такое. Будет неочевидно по коду где borrowing происходит.
источник

AT

Alexander Tchitchigin in Rust — русскоговорящее сообществo
Kitsu
Можно ссылку?
Оно, конечно, есть N таких списков. Я видел в разных работах на тему empirical software engineering и programming language usability или типа того. Плюс ещё про продуктивность программистов кучка статей разной степени интересности. Тут лучше читать оригинальные работы, ибо вопрос очень "скользкий", по краней мере со стороны эмпирических исследований.
источник

G

Gymmasssorla in Rust — русскоговорящее сообществo
Сначала прочитал как "Дебаггер для Unpin"
источник

AL

Andrey @ozkriff Lesnikov in Rust — русскоговорящее сообществo
Вафель
Несколько обидно за cognitive_complexity, это неплохой знак что у llvm будут проблемы с оптимизациями
про это в /r/rust ветка коментов есть: https://reddit.com/r/rust/comments/fwev22/most_commonly_ignored_clippy_lints
источник

A

Aleksandr Khristenko in Rust — русскоговорящее сообществo
А если у меня в json есть список сериализованных объектов с 5 полями, а мне в программе нужны объекты с 6ю полями(где шестое расчитывается на основе остальных) как-то просто с помощью serde это можно сделать? Или проце десериализировать в один тип и потом просто преобразовывать?
источник

Э

Эрик in Rust — русскоговорящее сообществo
Aleksandr Khristenko
А если у меня в json есть список сериализованных объектов с 5 полями, а мне в программе нужны объекты с 6ю полями(где шестое расчитывается на основе остальных) как-то просто с помощью serde это можно сделать? Или проце десериализировать в один тип и потом просто преобразовывать?
Смотря как хранишь и что считаешь. Если ты хранишь два числа в виде строки ("100", "123"), а тебе их надо сложить, умножить и в степень возвести, то очевидно, что их надо из строки обратно в число превратить.
источник

A

Aleksandr Khristenko in Rust — русскоговорящее сообществo
Эрик
Смотря как хранишь и что считаешь. Если ты хранишь два числа в виде строки ("100", "123"), а тебе их надо сложить, умножить и в степень возвести, то очевидно, что их надо из строки обратно в число превратить.
По сути в одном поле хранится строка, а мне надо в поле вытащить регуляркой оттуда некоторые значения.
Вот мне интересно, как это правильно делать, на стадии десериализации или же сначала просто десериализировать и потом просто преорбазовывать в другой объект.
источник

АГ

Алексей Герасимов in Rust — русскоговорящее сообществo
Aleksandr Khristenko
По сути в одном поле хранится строка, а мне надо в поле вытащить регуляркой оттуда некоторые значения.
Вот мне интересно, как это правильно делать, на стадии десериализации или же сначала просто десериализировать и потом просто преорбазовывать в другой объект.
а у serde нет возможновти дернуть какой-нибудь метод init после десериализации?
источник

A

Aleksandr Khristenko in Rust — русскоговорящее сообществo
Я не нашел.
источник

С

Сергей in Rust — русскоговорящее сообществo
Можно переопределить десериализацию через FromStr и сделать там как надо
источник

С

Сергей in Rust — русскоговорящее сообществo
Можно указать полностью свою функцию для десериализации
источник

С

Сергей in Rust — русскоговорящее сообществo
вот ещё вариант, например https://serde.rs/custom-date-format.html
источник

p

polunin.ai in Rust — русскоговорящее сообществo
хм, а есть какой-то макрос который выводит трейсбек по типу panic!() но не ложит поток?
источник

K

Kitsu in Rust — русскоговорящее сообществo
Можно через backtrace сделать, но это относительно муторно
источник

RP

Roman Proskuryakov in Rust — русскоговорящее сообществo
polunin.ai
хм, а есть какой-то макрос который выводит трейсбек по типу panic!() но не ложит поток?
gdb backtrace
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
polunin.ai
хм, а есть какой-то макрос который выводит трейсбек по типу panic!() но не ложит поток?
let b = backtrace::Backtrace::new();
let b = format!("{:?}", b);
println!("{}", b);
источник

f

folex in Rust — русскоговорящее сообществo
А как быть, если хочу вернуть impl Iterator, но иногда нужно возвращать пустой итератор, а иногда – собранный из конкретной коллекции?

if condition {
 VecDeque::new::<V>().into_iter()
} else {
 std::iter::empty::<V>()
}


Ожидаемо вылезает match arms have incompatible types

Полный пример тут
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=3ce554441f526b768989d9e4b803cbc4
источник

f

folex in Rust — русскоговорящее сообществo
Подозреваю, что у меня XY проблема, но не вижу, куда тут сделать шаг назад.
источник

Э

Эрик in Rust — русскоговорящее сообществo
VecDeque::new().into_iter()
источник