Converting Error Types
The effective expansion of ? is a little more complicated than previously indicated:
1. expression?
works the same as
1. match expression {
2. Ok(value) => value,
3. Err(err) => return Err(From::from(err)),
4. }
The From::from call here means we attempt to convert the error type to the type returned by the function:
