Percursos
/
Rust
Rust
/
Exercícios
/
Registos semiestruturados
Registos semiestruturados

Registos semiestruturados

Exercício de aprendizagem

Introdução

Os enums, abreviatura de enumerações, são um tipo que limita todos os valores possíveis de determinados dados. Os valores possíveis de um enum chamam-se variantes. Os enums também funcionam bem com match e outros operadores de fluxo de controlo, que te ajudam a expressar a tua intenção nos teus programas em Rust.

Instruções

Neste exercício vais gerar mensagens de registo semiestruturadas.

1. Emite mensagens semiestruturadas

Vais começar com algumas funções por implementar e com o seguinte enum:

#[derive(Clone, PartialEq, Debug)]
pub enum LogLevel {
    Info,
    Warning,
    Error,
}

O teu objetivo é emitir uma mensagem de registo com o seguinte formato: "[<LEVEL>]: <MESSAGE>". Vais ter de implementar funções que correspondem aos níveis de registo.

Por exemplo, o excerto abaixo mostra um resultado esperado para a função log.

log(LogLevel::Error, "Stack overflow")
// Returns: "[ERROR]: Stack overflow"

E para info:

info("Timezone changed")
// Returns: "[INFO]: Timezone changed"

Diverte-te!

2. Prática adicional opcional

Há um teste condicionado por uma funcionalidade nesta suite de testes. As condicionais de funcionalidade desativam por completo a compilação de certas secções do teu programa. Vão ser abordadas mais à frente. Por agora, basta saberes que há um teste que só é compilado e executado quando usas uma invocação de testes especial:

cargo test --features add-a-variant

Este teste serve para te mostrar como adicionar uma variante ao teu enum.

Editar via GitHub A ligação abre numa nova janela ou separador
Rust Exercism

Estás pronto para começar Registos semiestruturados?

Inscreve-te no Exercism para aprenderes e dominares Rust com 99 exercícios, e mentoria humana real, tudo grátis.