Serialize/Deserialize スタイルのトレイト

serde のようなクレートでは、シリアライズを自動的に実装できます。

導出可能: ✅

// 著作権 2025 Google LLC
// SPDX-License-Identifier: Apache-2.0

#[derive(Serialize, Deserialize)]
struct ExtraData {
    fav_color: String,
    name_of_dog: String,
}

#[derive(Serialize, Deserialize)]
struct Data {
    name: String,
    age: usize,
    extra_data: ExtraData,
}
  • 型にシリアライズおよびデシリアライズ機能を提供し、Rust のデータ型を JSON のようなデータ形式に変換したり、そこから変換したりできるようにします。

  • 標準ライブラリにはシリアライズ機能が組み込まれていませんが、 serde クレートはシリアライズを行うためのコミュニティ標準のインターフェースです。

  • 実装すべきでない場合: 型に、誤ってディスクに保存されたり ネットワーク越しに送信されたりすべきでない機密データが含まれる場合は、 その型に Serialize/Deserialize を実装しないことを検討してください。

    Debug と同様のセキュリティ上の懸念がありますが、シリアライズはしばしば ネットワーク通信で使われるため、より重大な問題になり得ます。