gpt4 book ai didi

rust - "serialize"和 "rustc-serialize"箱子有什么区别?

转载 作者:行者123 更新时间:2023-11-29 07:42:38 25 4
gpt4 key购买 nike

这是 serialize crate , 这是 rustc-serialize crate .

在使用 serialize 包中的 EncodableDecodable 特征时,我从编译器收到弃用警告。编译器告诉我使用 rustc-serialize crate 中的 RustcEncodableRustcDecodable

这似乎只是降低了相同功能的可读性(除了 rustc-serialize 中提供的 base64 编码)。这些箱子有什么区别?

最佳答案

serialize crate 是标准 Rust 发行版的内部部分。它不会在 Rust 1.0 稳定版/测试版 channel 中提供。

rustc-serialize crate 曾经是serialize,但它被移出到一个单独的存储库并上传到 crates.io 以便它可以自行发展.

这样做是因为 rustc-serialize 的实用性非常大,但要及时将其稳定到 Rust 1.0 是不现实的。由于 Rust 发行版将禁止稳定 channel 上的不稳定功能,因此继续使用序列化基础设施的唯一方法是 1) 稳定我们拥有的或 2) 将其移至 crates.io,那里不适用不稳定的限制。

rustc-serialize 有很多已知的缺点,并且 it is being worked on , 所以稳定那里的东西真的不是一个选择。

但是 Decodable/Encodable 功能需要编译器支持(因为编译器插件对于 Rust 1.0 来说也不稳定)。作为权宜之计,发明了 RustcDecodable/RustcEncodable 作为 rustc-serialize crate 显式使用的临时措施。这有点奇怪,但它为 serialize crate 的 future 向后兼容版本保留了 Decodable/Encodable 名称,该 crate 比我们现在拥有的更好(也许这个serde2 将从上述链接变成什么。

所以暂时还是坚持使用rustc-serializeRustcDecodable/RustcEncodable

(很抱歉,我无法提供一个链接来引用所有这些内容。这是我随着时间的推移从 GitHub 问题中积累的知识。不过也许有一个 RFC 列出了所有这些内容。我可以不记得了。)

关于rust - "serialize"和 "rustc-serialize"箱子有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28456813/

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