#Rust
[[serde_lexpr]]を使う。
```rust
#[derive(Serialize, Deserialize, Debug, PartialEq)]
enum Animal {
Dog,
#[serde(rename = "nyan")]
Cat,
}
#[test]
fn Variantをstringにserialize() {
let expected = "nyan";
assert_eq!(expected, serde_lexpr::to_string(&Animal::Cat).unwrap());
}
#[test]
fn stringをVariantにdeserialize() {
let expected = Animal::Cat;
assert_eq!(expected, serde_lexpr::from_str("nyan").unwrap());
}
```
> [!question] [[serde_json]]でダメな理由は?
> `serde_json::to_string`や`serde_json::from_str`を使うと、文字列の内側にダブルクォーテーションが必要になるため