Como extrair o valor interno de uma variante de enum quando tenho certeza de qual variante é?
Olá! Estou escrevendo em Rust e me deparei com um problema ao trabalhar com enums. Tenho o seguinte código:
```rust
enum Message {
Text(String),
Number(i32),
Quit,
}
fn process(msg: Message) {
// Eu tenho certeza que msg é Text(String)
// Mas como obtenho a string?
let text = msg; // aqui dá erro, claro
println!("Mensagem: {}", text);
}
```
Frequentemente me deparo com situações onde tenho certeza de qual variante do enum estou lidando — por exemplo, após verificar uma condição ou em um contexto onde isso é garantido pela lógica do programa. Mas Rust não permite simplesmente "desembrulhar" o enum e pegar o valor interno.
Conheço `match`, mas escrever um match completo tratando todas as variantes, quando estou certo de uma específica, parece redundante. Usar `if let` parece mais simples, mas mesmo com ele obtenho Option ou Result, e eu quero apenas o valor.
Existe alguma maneira de fazer isso sem código extra? Algo como `unwrap()` para Option? Talvez haja alguma função...