Conversión de Tipos de Errores
La expansión efectiva de ?
es un poco más complicada de lo que se ha indicado anteriormente:
expression?
funciona igual que
match expression {
Ok(value) => value,
Err(err) => return Err(From::from(err)),
}
Aquí la llamada a From::from
significa que intentamos convertir el tipo de error al tipo que devuelve la función: