列舉(英文:enumerations,簡稱 enum)是一種型別,用來限制某種資料所有可能的值。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"
祝你玩得開心!
這組測試中有一個受 feature gate 控制的測試。 Feature gate 會完全停用程式中某些部分的編譯。 這些之後會再介紹。 目前你只要知道,有一個測試只會在你使用特殊的測試指令時才會被建置並執行:
cargo test --features add-a-variant
這個測試的目的,是要示範如何為你的列舉新增一個變體。