属性(Attributes)

属性(Attributes) 用于自定义 Serde 派生生成的 SerializeDeserialize 实现。它们需要 Rust 编译器版本 1.15 及以上。

有三类属性:

use serde::{Serialize, Deserialize};

#[derive(Serialize, Deserialize)]
#[serde(deny_unknown_fields)]  // <-- 这是一个容器属性
struct S {
    #[serde(default)]  // <-- 这是一个字段属性
    f: i32,
}

#[derive(Serialize, Deserialize)]
#[serde(rename = "e")]  // <-- 这也是一个容器属性
enum E {
    #[serde(rename = "a")]  // <-- 这是一个变体属性
    A(String),
}

fn main() {}

请注意,一个单独的 struct、enum、variant 或 field 可能有多个属性。