Las enumeraciones, o enums para abreviar, son un tipo que limita todos los valores posibles de ciertos datos. Los valores posibles de un enum se llaman variantes. Las enumeraciones también funcionan bien con match y otros operadores de control de flujo que te ayudan a expresar tu intención en tus programas en Rust.
En este ejercicio vas a generar mensajes de registro semiestructurados.
Empezarás con algunas funciones sin implementar y el siguiente enum:
#[derive(Clone, PartialEq, Debug)]
pub enum LogLevel {
Info,
Warning,
Error,
}
Tu objetivo es emitir un mensaje de registro con el siguiente formato: "[<LEVEL>]: <MESSAGE>".
Tendrás que implementar funciones que se correspondan con los niveles de registro.
Por ejemplo, el siguiente fragmento muestra una salida esperada para la función log.
log(LogLevel::Error, "Stack overflow")
// Returns: "[ERROR]: Stack overflow"
Y para info:
info("Timezone changed")
// Returns: "[INFO]: Timezone changed"
¡Que te diviertas!
En esta suite hay una prueba condicionada por una funcionalidad. Las puertas de funcionalidad desactivan por completo la compilación de ciertas secciones de tu programa. Se verán más adelante. Por ahora, basta con saber que hay una prueba que solo se compila y se ejecuta cuando usas una invocación de pruebas especial:
cargo test --features add-a-variant
Esta prueba pretende mostrarte cómo añadir una variante a tu enum.
Regístrate en Exercism para aprender y dominar Rust con 99 ejercicios y mentoría humana real, todo gratis.