Size: a a a

2018 July 29

D

Denis in Rust Async
.retry(...).map_err(|_|())
источник

D

Denis in Rust Async
более того, в retry можно изменить тип возвращаемой ошибки
источник

D

Denis in Rust Async
нельзя просто взять и выкинуть второй тип ошибки
источник

A

Alexander in Rust Async
Denis
нельзя просто взять и выкинуть второй тип ошибки
ну вот да :(
источник

D

Denis in Rust Async
это не потому что комбинаторы плохие, а потому что система типов :)
источник

A

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

D

Denis in Rust Async
#[derive(Fail, From, Debug)]
enum TwoErrors {
  #[display("Error 1: {}", _0)]
  Err1(#[cause] err1),
  #[display("Error 2: {}", _0)]
  Err2(#[cause] err2),
}
.....
f1.from_err::<TwoErrors>().and_then(f2.from_err())
источник

A

Alexander in Rust Async
ну это да.
источник

D

Denis in Rust Async
ну вот и всё, идеальный мир достигнут ^_^
источник

A

Alexander in Rust Async
Нет, просто всё завёрнуто
источник

D

Denis in Rust Async
в смысле? у тебя на выходе селектор из двух ошибок
источник

D

Denis in Rust Async
в общем-то можно запилить комбинатор собственный and_then2, который будет сам внутри делать from_err
источник

A

Alexander in Rust Async
Ну я просто не очень понимаю причин почему мы должны о типе ошибок f2 заботится.
источник

D

Denis in Rust Async
ну вот произошла ошибка во второй футуре, что возвращать?
источник

D

Denis in Rust Async
какой должен быть тип ошибки у футуры f1.and_then(f2)?
источник

A

Alexander in Rust Async
(Option<E1>, Option<E2>)
источник

A

Alexander in Rust Async
Тьфу, просто два Result
источник

D

Denis in Rust Async
а, найс, вот с этим работать будет одно удовольствие, гораздо удобней, чем с енамом TwoErrors =)
источник

D

Denis in Rust Async
что значит "просто два резулт"?
источник

A

Alexander in Rust Async
Ну и ошибку и норм кейс - в любом случае в тупле
источник