Comment extraire la valeur interne d'une variante d'énumération (enum) quand je sais exactement de quelle variante il s'agit ?
Bonjour ! J'écris en Rust et j'ai rencontré un problème en travaillant avec les énumérations. J'ai ce code :
```rust
enum Message {
Text(String),
Number(i32),
Quit,
}
fn process(msg: Message) {
// Je sais exactement que msg est Text(String)
// Mais comment obtenir la chaîne ?
let text = msg; // ici erreur, bien sûr
println!("Message : {}", text);
}
```
Je rencontre souvent des situations où je sais exactement quelle variante d'enum je traite — par exemple après une vérification de condition ou dans un contexte où c'est garanti par la logique du programme. Mais Rust ne permet pas simplement de "déballer" l'enum et d'extraire la valeur interne.
Je connais `match`, mais écrire un match complet avec la gestion de toutes les variantes alors que je suis sûr d'une seule semble redondant. Utiliser `if let` semble...