Cómo comparar String con literales de cadena en match en Rust
¡Saludos, colegas!
Hace poco empecé a estudiar Rust y me encontré con un problema al usar la construcción `match` con cadenas. Tengo una variable de tipo `String` y quiero compararla con varios literales de cadena. Aquí está mi código:
```rust
fn main() {
let user_input = String::from("start");
match user_input {
"start" => println!("Inicio..."),
"stop" => println!("Parada..."),
"help" => println!("Ayuda..."),
_ => println!("Comando desconocido"),
}
}
```
El compilador da un error: `expected struct String, found &str`. Entiendo que `String` y `&str` son tipos diferentes en Rust, pero ¿cómo organizar correctamente la coincidencia? Intenté convertir `user_input` a `&str` usando `as_str()`, pero entonces se queja de que los literales también deberían ser `String`. Es un círculo vicioso.
Por favor, indíquenme cómo resolver esta tarea de manera adecuada. Necesito que el código sea eficiente e idiomático para Rust. Gracias de antemano.