Gli enum, abbreviazione di enumerazioni, sono un tipo che limita tutti i possibili valori di un certo dato. I valori possibili di un enum sono chiamati varianti. Gli enum funzionano bene anche con match e altri operatori di controllo del flusso, per aiutarti a esprimere le tue intenzioni nei programmi Rust.
In questo esercizio genererai messaggi di log semi-strutturati.
Partirai da alcune funzioni stub e dal seguente enum:
#[derive(Clone, PartialEq, Debug)]
pub enum LogLevel {
Info,
Warning,
Error,
}
L'obiettivo è emettere un messaggio di log nel formato seguente: "[<LEVEL>]: <MESSAGE>".
Dovrai implementare le funzioni che corrispondono ai livelli di log.
Per esempio, il frammento qui sotto mostra un output atteso per la funzione log.
log(LogLevel::Error, "Stack overflow")
// Returns: "[ERROR]: Stack overflow"
E per info:
info("Timezone changed")
// Returns: "[INFO]: Timezone changed"
Buon divertimento!
In questa suite c'è un test controllato da una feature. Le feature gate disabilitano completamente la compilazione per alcune sezioni del programma. Verranno trattate più avanti. Per ora sappi solo che c'è un test che viene compilato ed eseguito soltanto quando usi un'invocazione di test speciale:
cargo test --features add-a-variant
Questo test serve a mostrarti come aggiungere una variante all'enum.
Iscriviti a Exercism per imparare e padroneggiare Rust con 99 esercizi e il mentoring di persone reali, tutto gratis.