Vlad
Vlad
Хмм
pub struct Error {
pub(crate) inner: Box<Inner<Fail>>,
}
Vlad
Я всегда видел профит от растовых резалтов по сравнению, например, с джавовыми исключениями в том, что возможные вариаты ошибок содежатся прямо в системе типов, поэтому тяжело промахнуться и не обработать что-то. Ошибки из разных либ заворачиваются в варинты enum'а вышестоящей либы/проекта. Поэтому сразу видно, откуда какой ошибки стоит ожидать, и что они значат. Тогда как в джаве вечно хрен поймешь, что откуда может вылететь и что с этим делать.
Этот Error, получается, стирает типы нижележащих ошибок. В чем профит вообще тогда? Да это же java.lang.Exception, ну.
К тому же оно еще и боксится
Alexander
1/2 шага до GC :)
Aleksey
Так отдавай enum
Aleksey
Но иногда как навернешь какую то сложную лапшу из типов и этот самый enum уже становится франкенштейном. Тогда можно и Error взять.
Ну или на случай динамической диспетчеризации тоже сгодится.
Маjко
Anonymous
Просто про инкременталку и до этого много шума было, я думал, такое сложно не заметить.
Маjко
От нее ни холодно ни жарко
Loo
Лол
Anton
Маjко
Anton
Хотя нет
Anton
Handling other errors
Маjко
Ага
Anton
BEGIN
ErrorMessage {
msg: Two
}
Handling other errors
END
Маjко
Вот тут и непонятно, когда делал свой тип ошибки полностью, а не только Kind, как здесь — было
ErrorMessage {
msg: MyError { inner: MyErrorKind }
}
Маjко
И все равно не даункастилось
Маjко
Хм, мб в этом виноват bail!
Маjко
Он конструирует ErrorMessage
Маjко
Попробую еще раз сделать свой тип ошибки
Маjко
И вернуть без бейла
Anton
Ты макрос bail смотрел? =)
Маjко
Вот только что :)
Anton
Поздняк =)
Anton
Сразу бы ему строку дал =)
Маjко
Вообще странный апи.
По сути в ErrorMessage то, что внутри — должно быть cause.
И root_cause по логике должен вернуть ссылку на мой тип
Маjко
Ну то есть на трейтобъект, конечно, который даункастится до моего типа
Маjко
Нужон макрос для early return без форматирования в строку
Anton
return Err(X) =)
Маjко
А оно нормально автоматом конвертнется в failure::Error?
Маjко
Если писать MyError.into() — убого выглядит
Anton
Напиши макрос my_bail
Anton
throw* =)
Anton
Я обычно беру други проекты и смотрю как делают они
Anton
https://github.com/tafia/quick-xml/blob/master/src/errors.rs
Маjко
vladislav
Запахло крестами
Anton
Ты знач на запах крестов пришел?)
Маjко
Сомелье
vladislav
Loo
@mersinvald походу надо уже начать разбираться с failure
Loo
а то как не модный до сих пор на error-chain
Loo
“GSIndia Summit 2017” @rowdymehul https://medium.com/@rowdymehul/gsindia-summit-2017-b82c1c1dc128
Loo
Loo
“Pushing Rust To 2019” @dumindu_nuwan https://medium.com/@dumindu/pushing-rust-to-2019-9616d82172d3
Маjко
Вообще название фестиваля звучит как-то нетолерантно
Маjко
Как будто женщины только для скриптинга годны
Kerrigan
Anton
Anton
ну и ваще вы чо, Арсен мой фейк
Ilya
Джастин Бибер прогает на Rust?
vladislav
еее шутки про бибера из 2011
Ilya
За 300
Ilya
Есть ли курсы по раст?
Nikolay
Книга?
分解物質
Книга?
может он читать не умеет
Ilya
Anton
книга по раст
Nikolay
Да, она родимая
Ilya
Маjко
Она лучше как код после рефакторинга против первоначальной грубой версии
Ilya
Спс
kitsu
ну первая тож весьма неплоха
Нави
sign:=SHA512DigestToHex(CalcHMAC_SHA512(secret, nomber));
это на дельфи увидел
а как на rust получить такой sign ?
LexsZero
> nomber
Loo
Sergey
чож так больно веб прилажки на расте писать ((
Bugworm
https://rustaceans.org/
Loo
Sergey
как минимум заниматься роутингом
Sergey
слишком дофига кода получается
Alexander
В рокете вроде более-менее терипимо
Sergey
Sergey
о
Sergey
rocket_codegen скомпилен другой версией