Unfair #rustlang #serde Quiz: What's the difference between these four types' deserialization behavior (ignoring the type name)?
#[derive(Deserialize)]
struct One {
field: Option<String>,
}
#[derive(Deserialize)]
struct Two {
#[serde(default)]
field: Option<String>,
}
#[derive(Deserialize)]
struct Three {
#[serde(deserialize_with = "Option::deserialize")]
field: Option<String>,
}
#[derive(Deserialize)]
struct Four {
#[serde(default, deserialize_with = "Option::deserialize")]
field: Option<String>,
}