Anton
Посмотри пример
I
ну это мой же пример
Anton
Пардон https://play.rust-lang.org/?gist=e885343b7acb84b3aa8a6ff3a5b43b33&version=stable
Anton
https://play.rust-lang.org/?gist=db045afaea7acc4b42cd9ce736374c9c&version=stable
Anton
Сори с телефона
Anton
почему
Что легче передать 4/8 байт или многобайтовую строку?
I
А если эта ошибка будет использоваться в другом участке? Придется либо делать общий логгер, либо каждый раз писать Err(Error::Kind1) => { println!("Err1"); },
Anton
https://play.rust-lang.org/?gist=d8a3bee9a347013b4e29de6051883c88&version=stable
Anton
Всегда можно написать так
Anton
в e будет любая ршибка без сравнения
I
Вот в этом прикол что приходится делать функцию, в которой прописываются текста ошибки. То есть нельзя в енуме сразу определить текста напрямую и передавать его, а уже из него получать текст
I
т.к. в енуме можно только тип указать String, но не сам стринг
Anton
ты ссложно мыслишь =)
I
ну может. На ноде я бы просто сделал const Errors = { notFound: "Not found error descr", anotherError: "Bla bla bla" } throw new Error(Errors.notFound)
I
я привык уже мыслить в такой плоскости)
Anton
https://play.rust-lang.org/?gist=0646f9129e9864156a5ad511ac952885&version=stable
Anton
а так почему низя?
I
можно, но вот жаль что нет еще выработанных методик и стандартов
Anton
не все сразу
Anton
потом дойдешь до крейтов error_chain или failure
I
я уже смотрел, советовали error_chain
Anton
дело вкуса
Loyd
Надо нормальные ошибки с подклассами заводить
Loyd
И цепочки строить
I
с какими подклассами?
Loyd
И да, лучший способ объяснить ? — показать определение макроса try!
Loyd
с какими подклассами?
class MySuperError extends BaseError {} class OloloError extends MySuperError {} ... catch (ex) { throw new OloloError(message, ex) } BaseError — класс, который умеет cause (другую ошибку) сохранять, чтобы потом цепочки строить можно было
Loyd
В сообщении, на которое я отвечал, было про ноду
Loyd
И я показал, что ты и там неправильно делаешь
I
а тебя не смутило что это просто быстрый пример чтобы не писать кучу всего что ты написал?
Loyd
Не смутило, ибо выше ты текстом это же описал
Loyd
То есть какие-то константы вместо нормального перечисления
Loyd
В расте перечесление будет в алгтд через enum, а жс-е через подклассы, а не так, как ты показываешь
I
В расте перечесление будет в алгтд через enum, а жс-е через подклассы, а не так, как ты показываешь
причем тут классы вообще? Я не гуру в расте, но знаю что тут нет наследования как такового. Ясное дело что я здесь буду через енум просто делать список ошибок. Зачем мне писать пример с классами, если их нельзя сравнить с растом, потому что в расте их нет?
Loyd
Ещё раз: ты сказал, что вот в ноде ты бы сделал так-то, а в расте так нельзя
Loyd
Всё, что я хотел тебе сказать, это что и в ноде так делать не надо, а надо делать по-другому
I
Ты меня решил ноде поучить, ну давай, рассказывай что знаешь
Loyd
Аналог для чего есть и в расте
Loyd
Окей, пиши дальше свой говнокодец
I
Пробугуртил учитель
Filipp
Loyd
Если под фронтендом понимается клиент, то мимо
Loyd
Пробугуртил учитель
Окей. Но если бы ты такое показал на собеседовании, то к нам бы ты не попал однозначно
I
Окей. Но если бы ты такое показал на собеседовании, то к нам бы ты не попал однозначно
А ты всегда пишешь огромные пласты кода чтобы показать пример?
I
Если под фронтендом понимается клиент, то мимо
"под фронтендом понимается клиент" что ты имел здесь ввиду?
Loyd
Если 4 строчки кода для тебя "огромные пласты", то у меня для тебя плохие новости
I
Если 4 строчки кода для тебя "огромные пласты", то у меня для тебя плохие новости
зачем мне показывать наследование классов чтобы сравнить 2 языка, в одном из которых нет наследования?
Loyd
Потому что ты не хочешь видеть сути за тем, что пишешь, только форму
I
Это как показывать как ты сделал класс в с++ с наследованием и сравнить код с си, когда можно написать так же
Loyd
Чтобы различать варианты тебе нужен классификационный тег
Loyd
И что это будет — тег в tagged union-е или имя класса — нет никакой разницы
I
Слушай, а зачем тебе на работу нужно собеседование, когда ты не работаешь, а сидишь в телеграме и общаешься ни о чем
Loyd
А ты по субботам работаешь?
Loyd
Печально
I
Фриланс
Loyd
А, ну тогда всё понятно
Loyd
Как же я сразу не догадался
I
Ну ок, почему ты не сходишь погулять, суббота же
I
вместо этого сидишь и доказываешь что-то
I
в общем нет времени на тебя, удачи
I
(Можешь считать что ты победил, а то еще повесишься :) )
Loyd
Ну ок, почему ты не сходишь погулять, суббота же
Потому что я только что вернулся из Таллина и у меня отходняк?
Loyd
Окей.
I
удачи
Loyd
Но ты бы уходил из фриланса всё-таки
Anton
Пробовал diesel не смог разобраться как с ней работать
Если ты с дизелем не разобрался, тебя уже не спасти
Anton
в общем нет времени на тебя, удачи
Какая занятая сучка то попалась, ах
Loyd
Ну, дизель не так прост на самом деле. Надо знатно поебаться, чтобы свои типы впилить
Loyd
@tapok_satan ты таки посмотрел yew?
Loyd
лол
Anton
быдло
Мамкин неосилятор