Cómo extraer el valor interno de una variante de enum cuando sé exactamente cuál es
¡Hola! Escribo en Rust y me encontré con un problema al trabajar con enums. Tengo este código:
```rust
enum Message {
Text(String),
Number(i32),
Quit,
}
fn process(msg: Message) {
// Sé exactamente que msg es Text(String)
// ¿Pero cómo obtengo el string?
let text = msg; // aquí hay error, por supuesto
println!("Mensaje: {}", text);
}
```
A menudo me encuentro con situaciones donde sé exactamente qué variante del enum estoy manejando — por ejemplo, después de verificar una condición o en un contexto donde la lógica del programa lo garantiza. Pero Rust no permite simplemente "desenvolver" el enum y obtener el valor interno.
Conozco `match`, pero escribir un match completo manejando todas las variantes cuando estoy seguro de una específica parece excesivo. Usar `if let` parece más simple, pero incluso con eso obtengo un Option o Result, y yo necesito solo el valor.
¿Hay alguna forma de hacerlo sin código adicional? ¿Algo como `unwrap()` para Option? ¿Quizás existe alguna función o método que...