enumはenumerationの略で、あるデータが取りうる値をすべて限定する型です。enumが取りうる値はバリアントと呼ばれます。またenumは、matchなどの制御フロー演算子と相性がよく、Cairoのプログラムで意図を表現しやすくなります。
この演習では、半構造化されたログメッセージを生成します。
まず、いくつかのスタブ関数と、次の列挙型から始めます。
#[derive(Drop, Clone, PartialEq, Debug)]
pub enum LogLevel {
Info,
Warning,
Error,
Debug
}
目標は、次の形式でログメッセージを出力することです:"[<LEVEL>]: <MESSAGE>"。
ログレベルに対応する関数を実装する必要があります。
たとえば、次のコードはlog関数で期待される出力を示しています。
log(LogLevel::Error, "Stack overflow")
// Returns: "[ERROR]: Stack overflow"
infoの場合は次のとおりです。
info("Timezone changed")
// Returns: "[INFO]: Timezone changed"
それでは、楽しんでください!