相关疑难解决方法(0)

我可以在 Rust 中创建字符串枚举吗?

我想知道是否可以enum在 Rust 中使用常量字符串值创建?

我发现了上一个问题:如何将枚举作为字符串获取?它显示了一个解决方法,我可以用它来字符串化 的变体enum(我可以.to_string()enum变体上使用并将它们的名称作为字符串)。

这个问题很有帮助,但这就是我想要实现的目标:

enum StringEnum {
    Hello = "Hello",
    World = "World"
}
Run Code Online (Sandbox Code Playgroud)

enums rust

6
推荐指数
1
解决办法
2604
查看次数

如何在不包含枚举变体名称的情况下序列化枚举?

我试图将枚举序列化为JSON字符串.我Serialize为我的枚举实现了特征,因为它在文档中有描述,但我总是得到{"offset":{"Int":0}}而不是想要的{"offset":0}.

extern crate serde;
extern crate serde_json;

use std::collections::HashMap;

use serde::ser::{Serialize, Serializer};

#[derive(Debug)]
enum TValue<'a> {
    String(&'a str),
    Int(&'a i32),
}

impl<'a> Serialize for TValue<'a> {
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
    where
        S: Serializer,
    {
        match *self {
            TValue::String(ref s) => serializer.serialize_newtype_variant("TValue", 0, "String", s),
            TValue::Int(i) => serializer.serialize_newtype_variant("TValue", 1, "Int", &i),
        }
    }
}

fn main() {
    let offset: i32 = 0;
    let mut request_body = HashMap::new();
    request_body.insert("offset", TValue::Int(&offset));
    let serialized = …
Run Code Online (Sandbox Code Playgroud)

serialization rust serde serde-json

2
推荐指数
1
解决办法
647
查看次数

标签 统计

rust ×2

enums ×1

serde ×1

serde-json ×1

serialization ×1