我正在尝试使用泛型从文件中反序列化结构,以便与 Swagger 生成的 API 一起使用。所以我把这个几乎可以工作,但我无法从“Owned”指针解压外部 Struct 对象,正如你在测试中看到的那样。
这可能是错误的策略,但问题是我有各种 yaml 文件,我想读入并反序列化暗示正确的结构来反序列化。我不想为每个 Struct 实现一个“readfile”函数,因为有很多。所以我试图让这个通用库工作,它应该反序列化为正确的结构,并与 Swagger API 一起使用。
这是非常接近的工作,但我似乎无法解开的Outer<ExternalStructA>逼到了ExternalStructA。
Owned(ExternalStructA { x: 1, y: 2 })
Owned(ExternalStructB { a: 1, b: 2 })
Run Code Online (Sandbox Code Playgroud)
lib.rs:
#[cfg(test)]
mod tests {
use crate::generics_yaml_deserializer::Outer;
use serde::{de, Deserialize, Deserializer, Serialize, Serializer};
#[derive(Debug, Serialize, Deserialize)]
pub struct ExternalStructA {
x: u32,
y: u32,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ExternalStructB {
a: u64,
b: u64,
}
#[test]
fn deserialize() {
let a = r#"--- …Run Code Online (Sandbox Code Playgroud)