3 ms·
One thing you may be missing is that the `Result::Err` in your return type must implement `From` for the `Result::Err` type where you're using the `?` operator.
by CUViper 7y ago
One thing you may be missing is that the `Result::Err` in your return type must implement `From` for the `Result::Err` type where you're using the `?` operator. That's already covered if those `Err` types are identical (`From<T> for T`), otherwise you need to implement the conversion.
impl From<QuestionError> for ReturnError {
fn from(error: QuestionError) -> ReturnError {
// TODO
unimplemented!()
}
}
- wyldfire 7y agoOh yeah, that's likely it. Thanks! It it safe to just put a noop in there? What's From-ness? Is QuestionError defined in std? Where do I read more? EDIT: oh I see, I didn't read carefully. I just need to provide a conversion. Your example is very clear.
- ds206 7y agoIt's how you explicitly cast from one type to another. To use the ? operator with a custom error type, it needs to be converted to the std error type.
- steveklabnik 7y agoIt needs to be converted to whatever error type the function returns. That can be anything.