Les énumérations (en abrégé enum) sont un type qui limite l'ensemble des valeurs possibles d'une donnée. Les valeurs possibles d'un enum s'appellent des variantes. Les énumérations s'emploient aussi très bien avec match et d'autres opérateurs de contrôle de flux, ce qui t'aide à exprimer ton intention dans tes programmes Rust.
Dans cet exercice, tu vas générer des messages de journal semi-structurés.
Tu commenceras avec quelques fonctions ébauchées et l'énumération suivante :
#[derive(Clone, PartialEq, Debug)]
pub enum LogLevel {
Info,
Warning,
Error,
}
Ton objectif est d'émettre un message de journal comme suit : "[<LEVEL>]: <MESSAGE>".
Tu devras implémenter des fonctions qui correspondent aux niveaux de log.
Par exemple, l'extrait ci-dessous montre une sortie attendue pour la fonction log.
log(LogLevel::Error, "Stack overflow")
// Returns: "[ERROR]: Stack overflow"
Et pour info :
info("Timezone changed")
// Returns: "[INFO]: Timezone changed"
Amuse-toi bien !
Il y a un test conditionné par une fonctionnalité dans cette suite. Les barrières de fonctionnalité désactivent entièrement la compilation de certaines sections de ton programme. On les verra plus tard. Pour l'instant, sache simplement qu'il y a un test qui n'est compilé et exécuté que lorsque tu utilises une invocation de test spéciale :
cargo test --features add-a-variant
Ce test est destiné à te montrer comment ajouter une variante à ton énumération.
Inscris-toi sur Exercism pour apprendre et maîtriser Rust avec 99 exercices, et un vrai mentorat humain, le tout gratuitement.