トラック
/
Rust
Rust
/
演習
/
半構造化ログ
半構造化ログ

半構造化ログ

学習演習

はじめに

enum(列挙型)は、あるデータが取りうるすべての値を限定する型です。enumが取りうる値はバリアントと呼ばれます。enumはmatchやその他の制御フロー演算子とも相性がよく、Rustプログラムで意図を表現するのに役立ちます。

説明

この演習では、半構造化されたログメッセージを生成します。

1. 半構造化されたメッセージを出力する

まずは、いくつかのスタブ化された関数と、次の列挙型から始めます。

#[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"

楽しんでください!

2. 任意の追加練習

このテストスイートには、フィーチャーゲート付きのテストが1つあります。フィーチャーゲートを使うと、プログラムの特定の部分をまるごとコンパイルの対象から外せます。これについては後ほど説明します。今は、特別なテスト用の呼び出しを使ったときだけビルドされて実行されるテストがある、ということだけ覚えておいてください。

cargo test --features add-a-variant

このテストは、列挙型にバリアントを追加する方法を示すためのものです。

GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
Rust Exercism

半構造化ログを始める準備はできましたか?

Exercismに登録すれば、99個の演習、そして本物の人間によるメンタリングとともに、Rustを学んでマスターできます。すべて無料です。