Los enums, abreviatura de enumeraciones, son un tipo que restringe todos los valores posibles de un dato. Los valores posibles de un enum se llaman variantes. Los enums también funcionan bien con match y otros operadores de flujo de control que te ayudan a expresar tu intención en tus programas de Rust.
En este ejercicio vas a generar mensajes de registro semiestructurados.
Empezarás con algunas funciones sin implementar y la siguiente enumeración:
#[derive(Clone, PartialEq, Debug)]
pub enum LogLevel {
Info,
Warning,
Error,
}
Tu objetivo es emitir un mensaje de registro con este formato: "[<LEVEL>]: <MESSAGE>".
Tendrás que implementar las funciones que corresponden a cada nivel 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"
¡Diviértete!
En este conjunto de pruebas hay una prueba condicionada por una feature. Las feature gates desactivan por completo la compilación de ciertas secciones de tu programa. Las veremos más adelante. Por ahora, solo ten en cuenta que hay una prueba que solo se compila y se ejecuta cuando usas una invocación de prueba especial:
cargo test --features add-a-variant
Esta prueba pretende mostrarte cómo agregar una variante a tu enumeración.
Regístrate en Exercism para aprender y dominar Rust con 99 ejercicios y mentoría humana real, todo gratis.