https://serde.rs/enum-representations.html#internally-tagged
[[タグ付き共用体]]を変換したい場合。以下の[[JSON]]だと
```json
{"type": "request", "id": "...", "method": "...", "params": {...}}
```
以下のように書く。
```rust
#[derive(Serialize, Deserialize)]
#[serde(tag = "type")]
enum Message {
#[serde(rename = "request")]
Request { id: String, method: String, params: Params },
#[serde(rename = "response")]
Response { id: String, result: Value },
}
```
- `#[serde(tag = "...")`でタグとなるプロパティ名を指定 (上記では`type`)
- `Request`ではなく`request`として扱うため、`#[serde(rename = "...")`で名称の変更 (上記では`request`)
## 参考
- [RustのSerdeクレートで共用体を扱う](https://zenn.dev/masinc/articles/b307d31fd4b0b64674e4#%E3%82%BF%E3%82%B0%E4%BB%98%E3%81%8D%E5%85%B1%E7%94%A8%E4%BD%93)