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: