У меня есть этот код:
let file = FileStorage {
// ...
};
file.write("Test", bytes.as_ref())
.map_err(|e| MultipartError::Payload(error::PayloadError::Io(e)))?;
Не имеет значения, в каком контексте этот код написан для моего вопроса, так что это просто для демонстрации, и я не буду более подробно рассказывать о функциональнои контекст этого кода.
error::PayloadError::Io(e)
принимает std::io::Error
структуру, но ResultError
моего собственного типа FileStorage
занимает failure::error::Error
.
Я мог бы изменить ResultError
моего типабыть std::io::Error
, но по другим причинам это невозможно в этом проекте.
Поскольку две ошибки являются внешними признаками, я не могу реализовать одну для друг друга.Есть ли простой способ конвертировать ошибки, не создавая свой собственный тип ошибки?