这是serialize箱子,这是rustc-serialize箱子.
当我从包装箱中使用Encodable和Decodable特征时,我会收到编译器的弃用警告serialize.编译器告诉我使用RustcEncodable和RustcDecodable从rustc-serialize箱子中使用.
看起来这只会使相同功能的可读性降低(除了base64提供的编码rustc-serialize).这些板条箱有什么区别?
Bur*_*hi5 19
所述serialize箱是一个内部标准锈病分布的一部分.它不会在Rust 1.0 stable/beta频道中提供.
rustc-serialize以前的箱子serialize,但它被移出到一个单独的存储库并上传到crates.io,以便它可以自己发展.
之所以这样做是因为实用性rustc-serialize很大,但为了使Rust 1.0及时稳定下来是不现实的.由于Rust分发将禁止稳定通道上的不稳定功能,因此继续使用序列化基础结构的唯一方法是:1)稳定我们所拥有的或2)将其移动到crates.io,其中不稳定的限制不适用.
rustc-serialize有许多已知的缺点,它正在努力,所以稳定真正的东西不是一个选择.
但这些Decodable/Encodable功能需要编译器支持(因为对于Rust 1.0,编译器插件也不稳定).作为一种权宜之计,它RustcDecodable/RustcEncodable被发明作为rustc-serialize箱子明确使用的临时措施.这有点奇怪,但它留下的Decodable/Encodable名称可用于未来的向后兼容版本的serialize箱子,比我们现在更好(也许这serde2将是前面提到的链接).
所以暂时坚持使用rustc-serialize和RustcDecodable/RustcEncodable.
(我道歉,我无法想出一个引用所有这一切的链接.这是我从GitHub问题中产生的知识.也许有一个RFC可以解决所有这些问题.我不记得了. )
| 归档时间: |
|
| 查看次数: |
2001 次 |
| 最近记录: |