Αλεχ
Ну он же прав, в 99 процентах тебе else нужен
ему не нужен, пока пользаки не закидали какахами
Αλεχ
микрооптимизация жеж
Αλεχ
а что 2 способа одно выразить
Αλεχ
да это пофиг
Αλεχ
не обломаются доку почитать
Vladimir
Ну он же прав, в 99 процентах тебе else нужен
Да нет же, действительно елс нужен карайне редко, когда для создания ошибки нужны какие-то вычисления, в остальных кейсах компилятор умный и уберёт
Loyd
микрооптимизация жеж
Причем тут оптимизации?
Loyd
Это вообще побочное
Vladimir
Убери палочки будет ок
Αλεχ
Убери палочки будет ок
что не так с палочками?
Vladimir
Их надо рисовать там где не надо
Vladimir
Очевидно же
Αλεχ
там где надо
Αλεχ
очевидно
Vladimir
||val
Vladimir
В чём надобность такого?
Αλεχ
в том, что это 1% всех кейзов
Αλεχ
иметь метод для 1% случаев не нужно
Αλεχ
если у тебя в 500 местах памится ошибка. то это 5 раз написать 2 палочки
Αλεχ
офигеть
Loyd
Убери палочки будет ок
Сделай нормальные ошибки, чтобы месседж с ошибкой был, а не передавался
Loyd
И скобки вообще не нужна будут
Vladimir
Скобки или палки?
Loo
Эх вот бы щас вместо того чтобы 1 написать лямбду вызвать!
Loyd
Скобки или палки?
Если скобки не нужны, то и палки не нужны
Loyd
Передаешь функцмю-креатор сразу
Αλεχ
у тебя там константное значение почти никогда
Αλεχ
всегда какое-нибудь map_path(my_path).or_or(MyError::InvalidPath(my_path))?
Vladimir
Передаешь функцмю-креатор сразу
А если у тебя макрос криетор (как в фелур) или создание типа с контекстом?
Vladimir
Ты сам говорил про понятные ошибки, при этом загоняешь что нужно юзать статик методы без контекста для создания ошибок
Vladimir
👍
Alex
Люди, хочу сделать поддержку serde опциональной, в виде фичи. Как это делается нормально? Просто я столкнулся с тем, что половину структур (те, что с derive serde::Serialize...) приходится дублировать для "cfg not feature ..." без derive. Получается тонна копипасты.
Alex
Не юзать derive, а сделать свою impl Serialize for MyStruct ?
-__-
#[cfg_attr(feature="serde", derive(Serialize, Deserialize))]
Loyd
Ты сам говорил про понятные ошибки, при этом загоняешь что нужно юзать статик методы без контекста для создания ошибок
Чта?? Ты когда креатишь, в ошибке трейс, нормальный код и описание с кодом, а не со стороны. А когда конвертишь (скажем в твоей ошибке есть Io вариант), то ещё и чейн
Alex
Век учись. Круто. Не знал.
Alex
Ну т.е. знал. Но не связал.
Alex
Пофиг. Спасибо.
Loo
но ты не пишешь 1
А когда пишу?
Денис
А когда пишу?
Тебе же сказали, что не пишешь, им лучше знать
Денис
Чё ты спросишь, ей богу
Ilya
Объясните, зачем часть программы компилировать в wasm?
Ilya
Смотрю на polkadot, там пол программы в wasm загоняют
Invictus
Товарищи, подскажите, пожалуйста, по лайфтаймам. Я тут пытаюсь переписать пример из растбука так, чтобы обойтись без копирования и возвращать из функции ссылку, но я что-то делаю не так и не очень понимаю что: http://p.ip.fi/qQWJ
Invictus
Там листинг и ошибка компилятора при сборке.
Αλεχ
А когда пишу?
map_path(my_path).or_or(MyError::InvalidPath(my_path))?
Αλεχ
константа почти никогда
Αλεχ
почти всегда нужно передать еще и контекст
Αλεχ
а контекст это не константа
Αλεχ
создавать каждый раз его даже для happy path - бред
Invictus
play.rust-lang.org юзай
Оке, юуду иметь в виду.
Cat
Т.е. нужен type bound? Или что это?
ну ты же пишешь T в аргументах и возвращаемом значении
Cat
даже на растбуке T указан
պլհկ
Т.е. нужен type bound? Или что это?
T нужно обьявить перед использованием
Invictus
Дьявол, и правда. Спасибо!
Cat
только там возникает другая проблема
Cat
впрочем, проблема не сложная https://play.rust-lang.org/?gist=c07f1312303124e589fe5b1450b6ebe7&version=stable&mode=debug
Invictus
Да, полезли, другие ошибки, с владением.
Αλεχ
нельзя просто так сравнивать типы T
Cat
Там не про владение
про борровинг тоже потом идут ошибки
Cat
но там компилятор подсказывает как разрулить
Αλεχ
хм
Αλεχ
ты про largest vs &largest?
Cat
и про for &item vs for ref item
Cat
глянь мою ссылку
Invictus
ref, насколько я понимаю, возвращает ссылку на объект. Операции сравнения тоже, выходит, перехватывают владение?
Αλεχ
да видел
Αλεχ
и проверка на Ordering::Lower
Αλεχ