Size: a a a

2018 July 29

A

Alexander in Rust Async
Denis
короче я жду от тебя отзыва, нужен ли этот крейт или нет — https://t.me/tokio_rust/57
Да, спасибо, надо поиграться чуть с этим.
источник

D

Denis in Rust Async
👍
источник

D

Denis in Rust Async
хотя я для себя вот к такому склоняюсь обычно: https://t.me/tokio_rust/36
источник

A

Alexander in Rust Async
Alexander
Но тут да, получается есть inner ошибка и основная и мне показалось что их к одному типу приводить смысла нет.
Хотя конечно если смотреть на это как на связку колл-беков то конечно надо всё в один тип.
источник

A

Alexander in Rust Async
Ну признаться я уже немного тоже.
источник

A

Alexander in Rust Async
Вот есть f_conn(f_read(f_db))) и типа каждый из них может либо отработать и вызвать следующего либо кинуть ошибку.
источник

A

Alexander in Rust Async
Если это разложить плоско, ну даже например только read и db. То было бы:
let msg = read();
db_insert(msg); ну в плане как оно бы нормально в голове выглядело. А, ну с await/async сахаром конечно.
источник

D

Denis in Rust Async
ну слушай, даже если бы это был синхронный императивный код, тебе же всё равно нужно на выходе сделать селектор из трёх ошибок, разве нет?
источник

A

Alexander in Rust Async
Я вот не понимаю какого фига ошибка первого уровня должна быть равна типу ошибки второго уровня.
источник

A

Alexander in Rust Async
Да, вот мысли которые по дороге пришли:
источник

A

Alexander in Rust Async
Ну про идеальный мир:
источник

A

Alexander in Rust Async
Каждая фьюча должна сама заворачивать свою ошибку в FError<Error, FError> как-то так.
источник

A

Alexander in Rust Async
С какой стати шибки read должны вообще сходиться даже через enum в ожибками базы - imho не должны, а должны просто быть на разных уровнях.
источник

D

Denis in Rust Async
ну так это ровно то же самое, что и решение с кастомным енамом, только его за тебя должен сделать компилятор, так?
источник

D

Denis in Rust Async
ну попробуй с and_then2 поиграться — там как раз "разные уровни"
источник

A

Alexander in Rust Async
Denis
ну так это ровно то же самое, что и решение с кастомным енамом, только его за тебя должен сделать компилятор, так?
Ну вот всё же без enum - это приведение к одному, а я про разные уровни.
источник

A

Alexander in Rust Async
Напрягает что в расте нет каких-то стандартных практик.
источник

A

Alexander in Rust Async
Даже примеры с select - тут таймер и там таймер - и все ошибки сходятся. А у тебя не так как в примере?!? Ну это типа тогда надо долго думать.
источник

D

Denis in Rust Async
я кстати в примере заменил select на select2
источник

D

Denis in Rust Async
select2 как раз позволяет разные типы юзать
источник