Avatar ·

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...