问题标签 [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.
performance - 使用 Serde 和 Bincode 将大型结构序列化到磁盘很慢
我有一个包含 2³¹u32
值的向量的结构(总大小约为 8GB)。我按照bincode
示例将其写入磁盘:
为了避免两次分配内存,我serialize_into
以前直接写入文件。但是,写的过程真的很慢(大约半个小时)。有没有办法加快这个速度?
rust - 如何为盒装特征对象实现`serde::Serialize`?
我在尝试为结构创建通用向量时遇到了问题。这是我的第一次尝试:
Sized
这给我带来了一个未实现的错误,并且WidgetTrait
在编译时大小未知。
我的下一次尝试是这样使用Box<WidgetTrait>
:
这导致我犯了一个错误:
我的目标是让Section
结构中的小部件向量能够接受实现WidgetTrait
特征的不同类型的小部件,就像使用接口一样。
rust - 派生 Serde 的 Serialize 或 Deserialize 强制泛型类型可序列化,尽管它不需要
我的 typeA
可以包含任何 implements trait Trait
,它是可序列化的,尽管实现 trait 的类型Trait
可能不是。在我的情况下,它不可能 - 它是一个私有非对称密钥:
这会出错:
如果我注释掉A::Variant0
,如代码中的内联注释中所述,那么它编译得很好。这使我认为编译器无法推断出B<T>
可序列化的,但实际上它能够推断出,因为它可以确定E
是可序列化的,这也需要B
可序列化。
问题出在哪里?
generics - 如何为特征本身的关联类型的引用编写特征绑定?
我有这个代码:
我想使用关联类型来编写它,因为该类型T
对这种类型的用户来说并不重要。我做到了这一点:
我不知道如何指定另一个界限。
最终,我想使用这样的功能:
serialization - 如何在 bincoded 文件中的不同记录之间添加分隔符?
我有以下struct
我正在使用以下代码对其进行序列化,然后将序列化的字节数组写入文件:
我得到以下输出:
csv - 使用 Serde 将其写入文件时,如何向结构的实例添加额外的数据点?
APerson
有一个first_name
和一个last_name
。time
将实例写入 CSV 时,如何将导出添加Person
到 CSV?
上面的代码导致:
我的目标是生成一个格式为:
Serde 属性没有添加附加字段的选项。在上面的示例中,Person
结构不包含time
值。time
仅当数据写入 CSV 时才需要该值。
generics - 在函数内创建的对象上设置特征边界
我正在玩弄ipc-channel板条箱,试图构建一个包含以下内容的通用结构IpcOneShotServer
:
当我尝试编译此代码时,出现以下错误
我不确定我在这里缺少什么。我已经T
用Deserialize
和限制了这个特征Serialize
。我认为通过将 impl 中的特征与其他两个特征绑定在一起,这将告诉类型检查器,只要 a Supervisor
of 类型T
实现Deserialize
并且Serialize
调用ipc::IpcOneShotServer::new()
.
rust - 如何使用 Serde 的自定义(反)序列化来更新任意输入的子集?
我需要更新任意输入文件的特定字段,而无需触及我的程序不知道的任何键或值。
这是一个示例输入文件:
我想更新alpha.a
100:
serde_json::Value
可以使用and之类的类型来执行此操作toml::value::Value
,但是此代码非常麻烦:
我宁愿使用干净的派生语法:
这会运行,但会删除任何未知键:
有没有一种方法可以在使用漂亮Deserialize
和Serialize
实现的同时仍然保留我不知道的键和值?
一个理想的答案是:
- 适用于大多数 Serde 格式——我在这里展示的是 JSON,但我真正的代码是 TOML。
- 允许添加、更新和删除字段。
mongodb - 如何将 MongoDB 中的文档反序列化为 Rust 结构?
这是我迄今为止的尝试。我不明白如何告诉 Rust 将 MongoDB 结果反序列化为结构。
我已经定义了Thing
我希望数据映射到的结构。
然后我收到以下错误消息: