问题标签 [serde]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3135 浏览

performance - 使用 Serde 和 Bincode 将大型结构序列化到磁盘很慢

我有一个包含 2³¹u32值的向量的结构(总大小约为 8GB)。我按照bincode示例将其写入磁盘:

为了避免两次分配内存,我serialize_into以前直接写入文件。但是,写的过程真的很慢(大约半个小时)。有没有办法加快这个速度?

0 投票
2 回答
6108 浏览

rust - 如何为盒装特征对象实现`serde::Serialize`?

我在尝试为结构创建通用向量时遇到了问题。这是我的第一次尝试:

Sized这给我带来了一个未实现的错误,并且WidgetTrait在编译时大小未知。

我的下一次尝试是这样使用Box<WidgetTrait>

操场

这导致我犯了一个错误:

我的目标是让Section结构中的小部件向量能够接受实现WidgetTrait特征的不同类型的小部件,就像使用接口一样。

0 投票
1 回答
1142 浏览

rust - 派生 Serde 的 Serialize 或 Deserialize 强制泛型类型可序列化,尽管它不需要

我的 typeA可以包含任何 implements trait Trait,它是可序列化的,尽管实现 trait 的类型Trait可能不是。在我的情况下,它不可能 - 它是一个私有非对称密钥:

操场

这会出错:

如果我注释掉A::Variant0,如代码中的内联注释中所述,那么它编译得很好。这使我认为编译器无法推断出B<T>可序列化的,但实际上它能够推断出,因为它可以确定E是可序列化的,这也需要B可序列化。

问题出在哪里?

0 投票
1 回答
1470 浏览

xml - 使用 serde-xml-rs 反序列化 XML 创建 Err(重复字段 `$value`)

是我尝试解析的 xml 模式的示例。只有几个领域是我感兴趣的。架构的根是PubmedArticleSet包含 >= 0PubmedArticle个条目的。我对这些条目中包含的字段感兴趣。我收到标题中的错误,但我在这里没有看到与该错误相关的问题。

我已经设置了以下结构:

我尝试使用以下函数进行解析:

0 投票
1 回答
885 浏览

generics - 如何为特征本身的关联类型的引用编写特征绑定?

我有这个代码:

我想使用关联类型来编写它,因为该类型T对这种类型的用户来说并不重要。我做到了这一点:

我不知道如何指定另一个界限。

最终,我想使用这样的功能:

0 投票
1 回答
324 浏览

serialization - 如何在 bincoded 文件中的不同记录之间添加分隔符?

我有以下struct

我正在使用以下代码对其进行序列化,然后将序列化的字节数组写入文件:

我得到以下输出:

0 投票
1 回答
101 浏览

csv - 使用 Serde 将其写入文件时,如何向结构的实例添加额外的数据点?

APerson有一个first_name和一个last_nametime将实例写入 CSV 时,如何将导出添加Person到 CSV?

上面的代码导致:

我的目标是生成一个格式为:

Serde 属性没有添加附加字段的选项。在上面的示例中,Person结构不包含time值。time仅当数据写入 CSV 时才需要该值。

0 投票
0 回答
135 浏览

generics - 在函数内创建的对象上设置特征边界

我正在玩弄ipc-channel板条箱,试图构建一个包含以下内容的通用结构IpcOneShotServer

当我尝试编译此代码时,出现以下错误

我不确定我在这里缺少什么。我已经TDeserialize和限制了这个特征Serialize。我认为通过将 impl 中的特征与其他两个特征绑定在一起,这将告诉类型检查器,只要 a Supervisorof 类型T实现Deserialize并且Serialize调用ipc::IpcOneShotServer::new().

0 投票
1 回答
2190 浏览

rust - 如何使用 Serde 的自定义(反)序列化来更新任意输入的子集?

我需要更新任意输入文件的特定字段,而无需触及我的程序不知道的任何键或值。

这是一个示例输入文件:

我想更新alpha.a100:

serde_json::Value可以使用and之类的类型来执行此操作toml::value::Value,但是此代码非常麻烦:

我宁愿使用干净的派生语法:

这会运行,但会删除任何未知键:

有没有一种方法可以在使用漂亮DeserializeSerialize实现的同时仍然保留我不知道的键和值?

一个理想的答案是:

  • 适用于大多数 Serde 格式——我在这里展示的是 JSON,但我真正的代码是 TOML。
  • 允许添加、更新和删除字段。
0 投票
0 回答
1090 浏览

mongodb - 如何将 MongoDB 中的文档反序列化为 Rust 结构?

这是我迄今为止的尝试。我不明白如何告诉 Rust 将 MongoDB 结果反序列化为结构。

我已经定义了Thing我希望数据映射到的结构。

然后我收到以下错误消息: