Avatar ·

Comment obtenir une représentation sous forme de chaîne d'une variante d'énumération (enum) en Rust ?

Bonjour à tous ! Je viens de commencer à apprendre Rust et j'ai rencontré un problème qui semble simple, mais je n'arrive pas à trouver une solution élégante. J'ai une énumération pour les statuts de commande : ```rust enum OrderStatus { Pending, Processing, Shipped, Delivered, Cancelled, } ``` Je dois afficher le statut actuel dans la console pour la journalisation et pour l'affichage à l'utilisateur. J'ai essayé d'utiliser simplement `println!("{}", status)`, mais le compilateur renvoie une erreur indiquant que le trait `std::fmt::Display` n'est pas implémenté pour mon type. Je sais que je peux ajouter `#[derive(Debug)]` et utiliser `{:?}`, mais cela donne un résultat comme `OrderStatus::Pending`, alors que j'ai besoin simplement de "Pending" sans le nom de l'énumération. J'ai aussi essayé d'écrire une expression match pour chaque variante, mais cela semble très lourd, surtout s'il y a beaucoup de variantes. Pouvez-vous me dire comment obtenir correctement et idiomatiquement une chaîne à partir d'une variante d'enum en Rust ? Idéalement sans copie inutile et avec un minimum de surcharge. Merci d'avance !