小编mic*_*ski的帖子

序列化未实现序列化的外部板条箱枚举的 vec

我使用带有枚举的外部板条箱,它不实现序列化,并且我想在包含该枚举的 Vec 的结构中使用它,并且可以反/序列化该结构。基于serde 文档,我创建了以下代码

use serde::{Serialize, Deserialize};

#[derive(Debug, PartialEq, Eq)]
enum ExternalCrateColor {
    Red,
    Green,
    Blue
}

#[derive(Debug, Serialize, Deserialize)]
#[serde(remote = "ExternalCrateColor")]
enum LocalColor {
    Red,
    Green,
    Blue
}

#[derive(Debug, Serialize, Deserialize)]
struct Hue {
    #[serde(with = "LocalColor")]
    color: ExternalCrateColor
}

fn main() {
    let tones = Hue { color: ExternalCrateColor::Blue };
    let serialized = serde_json::to_string(&tones).unwrap();
    println!("serialized = {}", serialized);
    let deserialized: Hue = serde_json::from_str(&serialized).unwrap();
    if deserialized.color == ExternalCrateColor::Blue {
      println!("Blue tones");
    }
}
Run Code Online (Sandbox Code Playgroud)

铁锈游乐场

但我想要的是让 Hue …

enums serialization rust serde

5
推荐指数
1
解决办法
1554
查看次数

标签 统计

enums ×1

rust ×1

serde ×1

serialization ×1