функция, в которой открывается файл, а потом делается serde_json, оба могу вернуть ошибки. Как правильно использовать failure или нужен ли он вообще, чтобы нормально описать тип на выходе? Или все-таки мапить ошибки?
#[derive(Fail, Debug)] enum GeneralError { #[fail(display = "Json error: {:?}", _0)] Json(#[cause] ::serde_json::Error), #[fail(display = "I/O error: {:?}", _0)] Io(#[cause] ::std::io::Error), } impl From<::std::io::Error> for GeneralError { fn from(e: ::std::io::Error) -> Self { GeneralError::Io(e) } } impl From<::serde_json::Error> for GeneralError { fn from(e: ::serde_json::Error) -> Self { GeneralError::Json(e) } }
Обсуждают сегодня