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: