提问人:thefrollickingnerd 提问时间:11/15/2023 更新时间:11/15/2023 访问量:32
将 TOML 数据反序列化为具有 nalgebra 类型的结构
Deserialise TOML data into struct with nalgebra types
问:
我有这个结构 -
#[derive(Deserialize)]
struct body {
label: String,
mass: f64,
pos: Point3<f64>,
vel: Vector3<f64>,
obj_col: f32,
}
我在一个 toml 文件中有一些数据,我想读取并反序列化到结构中。
[[objects]]
label = "Sun"
mass = 1.9891e30
pos = [0.0, 0.0, 0.0]
vel = [0.0, 0.0, 0.0]
obj_col = 1.00
我已经通读了 nalgebra 文档,似乎向量/矩阵类型存在序列化特征,但目前尚不清楚我应该如何实现它们。 就目前而言,serde 无法将 Point3 和 Vector3 识别为可以反序列化的类型。
以前有没有其他人实现过这个问题的解决方案?我不知道从哪里开始
作为第二个问题,toml 文件有多个对象,这些对象都将成为单独的结构实例。有没有办法在实例反序列化时遍历实例?
答:
1赞
Aditeya
11/15/2023
#1
您需要在 nalgebra 上启用 crate 功能才能获取它们的反序列化器。serde-serialize
如果要遍历实例以创建单个结构,则必须实现自定义反序列化程序,而不是派生反序列化程序。
评论
0赞
thefrollickingnerd
11/16/2023
啊,谢谢你,就是这样。我花了很长时间寻找如何反序列化 nalgebra,但找不到这个!
评论
features = ["serde-serialize"]