Size: a a a

2020 March 25

G

Gymmasssorla in rust_offtopic
Alex Zhukovsky
мне файл надо сначала прочитать
Читаешь во внешней функции
источник

AZ

Alex Zhukovsky in rust_offtopic
Gymmasssorla
Читаешь во внешней функции
ок, какой тип ошибки будет у этой внешней функции?
источник

G

Gymmasssorla in rust_offtopic
Понял
источник

A

Adv0cat in rust_offtopic
ну если у вас что-то пытается прочесть и распарсить файл и на выходе или готовый распаршеный объект или ошибка, а какая внутри ошибка вам не важно, то вы наверх отдаете одну и ту же ошибку - нишмогла
источник

С

Слава in rust_offtopic
Олдскульненько
источник

G

Gymmasssorla in rust_offtopic
Adv0cat
ну если у вас что-то пытается прочесть и распарсить файл и на выходе или готовый распаршеный объект или ошибка, а какая внутри ошибка вам не важно, то вы наверх отдаете одну и ту же ошибку - нишмогла
Что, если потом нужно анализировать ошибку?
источник

A

Adv0cat in rust_offtopic
red75prime
let s = file.read()?; let foo = s.parse()?
А если вам важно и та и та ошибка, то у вас это 2 разных процесса и соответственно в одном будет Result<T, ReadError>, а у другой функции Reault<T, ParseError>
источник

G

Gymmasssorla in rust_offtopic
Adv0cat
А если вам важно и та и та ошибка, то у вас это 2 разных процесса и соответственно в одном будет Result<T, ReadError>, а у другой функции Reault<T, ParseError>
источник

A

Adv0cat in rust_offtopic
Куда выше?
источник

G

Gymmasssorla in rust_offtopic
Выше по стеку
источник

С

Слава in rust_offtopic
Alex Zhukovsky
переписать половину борров чекера
Очень хорошая идея, между прочим. Такое надо чинить, пока язык не забронзовел.
источник

A

Adv0cat in rust_offtopic
Ну точнее для чего по стеку выше анализ этих ошибок?
источник

A

Adv0cat in rust_offtopic
Если выше по стеку важна разница, то там выше по стеку пусть и вызывают сначало одну функцию, а потом другую
источник

S

Soul in rust_offtopic
так editions разве не для того придумали, чтобы крейты не ломались при тотальном перепиливании языка?
источник

С

Слава in rust_offtopic
Alex Zhukovsky
ишь чего придумали, владение, заимствование, лайфтаймы, иммьютабл, набор каких то слов бесполезных, нормальный программист никогда не ошибётся и два раза не напишет фри или не начнёт мутировать из 2 ух потоков данные без синхронизации, в общем только сишечка. а эти ваши игрушки пусть в аду горят
Это в "Ебанатику" надо отправить. Но нельзя, потому что сарказм.
источник

r

red75prime in rust_offtopic
Adv0cat
Если выше по стеку важна разница, то там выше по стеку пусть и вызывают сначало одну функцию, а потом другую
Тогда и библиотеки не особо нужны. Функции в stdlib есть, вызывай что надо.
источник

G

Gymmasssorla in rust_offtopic
Adv0cat
Если выше по стеку важна разница, то там выше по стеку пусть и вызывают сначало одну функцию, а потом другую
Но тогда это будет нарушение SRP и просто неудобно
источник

S

Soul in rust_offtopic
ух и сложности
источник

S

Soul in rust_offtopic
я вот никак не могу понять, почему на Java и на Go прекрасно игрушки делают, а на Haskell не очень...
источник

A

Adv0cat in rust_offtopic
Gymmasssorla
Но тогда это будет нарушение SRP и просто неудобно
Ну почему?
если вам действительно важны эти ошибки и они разные, то вы и действия сделаете разные, а какая разница вы сделаете load_and_parse(), а потом if по ошибке такой или такой, а в итоге если еще выше нужно то уйдет одна ошибка. Или вы сделаете load() обработаете ошибку и выдадите на верх ошибку, что ничего не получилось, а потом сделаете parse() - обработаете эту ошибку и выдадите на верх ошибку такую же как и при load() - нишмогла
источник