Size: a a a

2020 December 08

V

V---V in Rust Beginners
Необычный.
источник

J

JohnByte in Rust Beginners
Это еще не самая ж*.
источник

J

JohnByte in Rust Beginners
Сырость либ, слабость поддержки IDE и её полный отказ внутри макросов, которых много, очень большое количество способов писать на Rust, при том что общепринятый не выработался.

Cognitive load, который возникает когда слишком много обёрток и дженериков, усложняется макросами, усложняется импортами
источник

V

V---V in Rust Beginners
JohnByte
Это еще не самая ж*.
источник

JM

John Meow in Rust Beginners
Mikail Bagishov
Вместо этого используется более короткий промежуток - между созданием и последним исопльзованием. В случае s2 этот промежуток состоит из одной инструкции и сразу после него уже можно заимствовать по-новому
То есть если переставить let местами, компилиться не будет?
источник

IB

Ilya Bogdanov in Rust Beginners
Да
источник

A

Adatan in Rust Beginners
Хочу сделать глобальную структуру, типа конфиг, куда можно будет запихать считанный с файла конфиг и соединение с БД
источник

OS

Oleg Shirokov in Rust Beginners
Доброго вечера!
Господа, кто может подсказать способ логгирования ошибок из Result чтобы при этом не обвешивать каждый вызов функции которая этот Result возвращает match'ем (а использовать ?-operator) и при этом не терять контекст? Я придумал только использовать error-chain и логгировать ошибки в самом начале стэка вызовов, есть более элегантные решения?
источник

EG

Emmanuel Goldstein in Rust Beginners
Oleg Shirokov
Доброго вечера!
Господа, кто может подсказать способ логгирования ошибок из Result чтобы при этом не обвешивать каждый вызов функции которая этот Result возвращает match'ем (а использовать ?-operator) и при этом не терять контекст? Я придумал только использовать error-chain и логгировать ошибки в самом начале стэка вызовов, есть более элегантные решения?
docs.rs/anyhow чтобы сохранять контекст
источник

EG

Emmanuel Goldstein in Rust Beginners
Или docs.rs/thiserror для библиотек
источник

EG

Emmanuel Goldstein in Rust Beginners
Для логирования можно сделать примерно так:
trait LogResult {
   fn log(self) -> Self;
}

impl<T, E> LogResult for Result<T, E> where Self: Display {
   fn log(self) -> Self {
       if let Err(e) = &self {
           log::error!("{}", &self);
       }
       self
   }
}
источник

EG

Emmanuel Goldstein in Rust Beginners
И использовать так:
my_fallible_operation().log()?
источник

OS

Oleg Shirokov in Rust Beginners
Спасибо
источник

A

Adatan in Rust Beginners
посоветуйте [profile.release] для максимального уменьшения размера бинарника, жертвуя чем угодно
источник

K

Kitsu in Rust Beginners
lto = 1
panic = 'abort'
codegen-units = 1
источник

A

Adatan in Rust Beginners
источник

Jøhn Đøꝩsøn in Rust Beginners
Adatan
посоветуйте [profile.release] для максимального уменьшения размера бинарника, жертвуя чем угодно
источник

K

Kitsu in Rust Beginners
ну да кстати, про самое очевидное и забыл
источник

JC

Julian =) Coffee in Rust Beginners
там не все очевидно
источник

JC

Julian =) Coffee in Rust Beginners
можно и на 2 получить меньший размер за счет инлайнинга и элиминации дедкода
источник