Convertendo Tipos de Erro

A expansão efetiva do operador ? é um pouco mais complicada do que indicado anteriormente:

expression?

funciona da mesma forma que

match expression {
    Ok(value) => value,
    Err(err)  => return Err(From::from(err)),
}

A chamada From::from aqui significa que tentamos converter o tipo de erro para o tipo retornado pela função: