Manière propre de convertir Result en Option en Rust
Bonjour, collègues ! Je viens de commencer à apprendre Rust et j'ai rencontré une situation typique : j'ai une fonction qui retourne `Result`, mais pour la suite du travail j'ai besoin d'un `Option`. Par exemple, je lis une variable d'environnement :
```rust
use std::env;
fn main() {
let port: Option = env::var("PORT") // Result
.and_then(|s| s.parse()) // Result
.ok(); // ???
}
```
Je sais qu'on peut utiliser `.ok()`, qui transforme `Result` en `Option`, en ignorant l'erreur. Mais cela me semble une approche pas très propre — on perd l'information sur l'erreur. Peut-être existe-t-il une manière plus idiomatique ?
Deuxième problème : j'ai une chaîne d'appels avec plusieurs `Result`, et je veux les transformer en `Option` à l'étape finale, mais sans perdre le contexte de l'erreur pour la journalisation. Comment faire cela élégamment ?
Merci de m'indiquer les manières propres et acceptées par la communauté Rust de résoudre cela. Merci d'avance !