gpt4 book ai didi

rust - 我可以使用 Bincode 反序列化具有可变长度前缀的向量吗?

转载 作者:行者123 更新时间:2023-11-29 08:12:01 32 4
gpt4 key购买 nike

我在使用 Rust bincode 库时遇到问题。当它序列化一个向量时,它总是假设前缀长度是 8 个字节。当您始终使用 bincode 对数据进行编码时,这是一个很好的假设,因为 bincode 可以读取它自己的序列化数据。

我处于无法影响序列化程序的情况,因为我没有编写它,并且由于遗留原因它必须保持不变。它将其向量编码为长度前缀数组,其中前缀始终为 2 个字节(或者在某些情况下为 4 个字节,但我很了解这些情况。一旦我知道如何用 2 个字节来做,4 个字节不应该是问题)。

如何使用 bincode(和 serde)来反序列化这些字段?我可以绕过 bincode 中硬编码的默认 8 字节长度吗?

最佳答案

Bincode不应该与任何现有的序列化程序或标准兼容。根据评论,您尝试阅读的格式也不是。

我建议您获取 bincode资源——它们是麻省理工学院许可的,所以你基本上可以自由地对它们做任何你喜欢的事情——并修改它们以适合你的格式(并给它起你的名字并将它包含在你的项目中)。

serde::Deserializer有据可查,基础 data model 也是如此,并且在 bincode 中的实现很容易找到(在 de/mod.rs 中),因此将其作为您的起点并根据需要进行调整。

关于rust - 我可以使用 Bincode 反序列化具有可变长度前缀的向量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56219767/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com