2 个版本
0.1.2 | 2020 年 11 月 28 日 |
---|---|
0.1.0 | 2020 年 10 月 3 日 |
在 Rust 模式 中排名 #2534
每月下载量 3,154
在 62 个crate(2 个直接)中使用
10KB
107 行
Serde 字符串辅助工具
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