Enums, abreviação de enumerações, são um tipo que restringe os valores possíveis de um dado. Os valores possíveis de um enum são chamados de variantes. Enums também funcionam bem com match e outros operadores de controle de fluxo para ajudar você a expressar sua intenção em seus programas em Rust.
Neste exercício, você vai gerar mensagens de log semiestruturadas.
Você vai começar com algumas funções incompletas e o seguinte enum:
#[derive(Clone, PartialEq, Debug)]
pub enum LogLevel {
Info,
Warning,
Error,
}
Seu objetivo é emitir uma mensagem de log no seguinte formato: "[<LEVEL>]: <MESSAGE>".
Você vai precisar implementar funções que correspondem aos níveis de log.
Por exemplo, o trecho abaixo mostra uma saída esperada para a função log.
log(LogLevel::Error, "Stack overflow")
// Returns: "[ERROR]: Stack overflow"
E para info:
info("Timezone changed")
// Returns: "[INFO]: Timezone changed"
Divirta-se!
Nesta suíte há um teste controlado por uma feature. As feature gates desativam completamente a compilação de certas partes do seu programa. Elas serão abordadas mais adiante. Por enquanto, saiba apenas que existe um teste que só é compilado e executado quando você usa uma invocação de teste especial:
cargo test --features add-a-variant
Este teste tem o objetivo de mostrar como adicionar uma variante ao seu enum.
Crie sua conta no Exercism para aprender e dominar Rust com 99 exercícios e mentoria humana de verdade, tudo de graça.