2 个版本

0.1.2 2020 年 11 月 28 日
0.1.0 2020 年 10 月 3 日

Rust 模式 中排名 #2534

Download history 1677/week @ 2024-03-13 1227/week @ 2024-03-20 1208/week @ 2024-03-27 713/week @ 2024-04-03 979/week @ 2024-04-10 2301/week @ 2024-04-17 541/week @ 2024-04-24 1013/week @ 2024-05-01 293/week @ 2024-05-08 396/week @ 2024-05-15 1254/week @ 2024-05-22 412/week @ 2024-05-29 820/week @ 2024-06-05 747/week @ 2024-06-12 640/week @ 2024-06-19 927/week @ 2024-06-26

每月下载量 3,154
62crate(2 个直接)中使用

MIT 许可证

10KB
107

Serde 字符串辅助工具

Build Tests Lints codecov MIT licensed

Rust crate 包含使用字符串与 serde 一起使用的辅助工具。

关于

目前只有一种辅助工具,通过避免分配(和复制)来更有效地反序列化字符串值。未来可能会出现新的辅助工具。

此 crate 是 no_std,但 确实 需要 alloc

DeserBorrowStr

使用 TryFrom 更高效地进行反序列化的辅助工具。

当使用 #[serde(try_from = "String"] 反序列化一个不需要保留字符串的值(例如,整数值)时,即使不需要,serde 也会分配字符串。(例如,非转义 Json 字符串的情况。)

一个简单的想法是使用 std::borrow::Cow 来解决这个问题。遗憾的是,对于 Cow<'de, str> 的 Deserialize 实现,没有借用字符串,所以它仍然会不必要地分配。这个辅助工具解决了这个问题。

我们的 DeserBorrowStr 被编写得在可能的情况下借用 str,避免分配。例如,如果需要执行字符串解码(转义),它仍然可能需要分配。

MSRV

目前的官方 MSRV 是 1.41.1,以后可能会降低。

许可证

MIT

依赖项

~0.4–1MB
~23K SLoC