枚举(enumeration 的缩写)是一种类型,用于限定某个数据所有可能的取值。enum所有可能的取值称为变体。枚举还能与match以及其他控制流运算符很好地配合,帮助你在 Rust 程序中表达意图。
在这个练习中,你将生成半结构化的日志消息。
你会从一些桩函数和下面这个枚举开始:
#[derive(Clone, PartialEq, Debug)]
pub enum LogLevel {
Info,
Warning,
Error,
}
你的目标是输出如下格式的日志消息:"[<LEVEL>]: <MESSAGE>"。
你需要实现与各个日志级别相对应的函数。
例如,下面的代码片段展示了log函数的预期输出。
log(LogLevel::Error, "Stack overflow")
// Returns: "[ERROR]: Stack overflow"
再比如info:
info("Timezone changed")
// Returns: "[INFO]: Timezone changed"
玩得开心!
这个测试套件里有一个由特性门控的测试。 特性门控会完全禁止程序中某些部分的编译。 这些内容后面会讲到。 现在你只需要知道,有一个测试只在你使用特殊的测试调用方式时才会被构建和运行:
cargo test --features add-a-variant
这个测试的目的是向你展示如何为枚举添加一个变体。