使用 Serde 序列化包含 Ndarray 字段的结构

Nilesh Katuwal 2023年1月30日 2022年7月18日
  1. 在 Rust 中创建 serde 数组
  2. Rust 中的 Serde 示例
使用 Serde 序列化包含 Ndarray 字段的结构

在本文中,我们将学习使用 serde 来序列化包含 ndarray 字段的结构。

在 Rust 中创建 serde 数组

使用 Serde 序列化和反序列化 const、通用或任意巨大的数组。Serde 是一个强大的框架,它通过允许序列化库对 Rust 数据结构进行通用序列化,从而消除了对运行时类型信息的需求。

此外,在许多情况下,通常在串行器和串行器之间使用的握手协议可以完全优化,从而允许 Serde 以与为特定类型手动设计的串行器大致相同的速度运行。

Serde 支持多种类型;但是,它不支持使用 const 泛型的数组。该库提供了一个模块,当与 Serde 的 with 属性结合使用时,可以增加对该功能的支持。

Rust 中的 Serde 示例

下面是在 serde JSON 库的帮助下生成和解析 JSON 的简单演示,该库在幕后使用了 Serde。让我们从 Cargo.toml 文件开始,让事情顺利进行。

[package]
name = "example_serde"
version = "0.1.0"
authors = ["example@abc.com>"]

[dependencies]
serde_json = "0.8"
[dependencies]
ndarray = { version = "0.13.1", features = ["serde"] }

在前面的示例中,JSON 值的内存表示是 serde json::Value。然而,Serde 也可以在标准 Rust 类型之间进行序列化。

Serde 拥有与 Stable 和 Nightly Rust 兼容的高效代码生成库。这些库消除了与手动推出特定类型的序列化和反序列化相关的很大一部分困难。