3 个版本
0.1.2 | 2024 年 7 月 17 日 |
---|---|
0.1.1 | 2024 年 7 月 17 日 |
0.1.0 | 2024 年 3 月 24 日 |
#2154 在 解析器实现
12,268 每月下载量
用于 24 个 crates(通过 serenity)
6KB
84 行
serde-cow
请参阅 docs.rs 上的文档或使用 cargo doc --no-deps --open
在本地构建。
最低支持的 Rust 版本
目前是 1.56,预计会增加破坏性更改。
lib.rs
:
一个小型库,包含用于实现预期方式的 serde::Deserialize
的 Cow
包装器。
默认情况下,由于缺乏特殊化,[Cow
] 总是反序列化为 Cow::Owned
变体,但此库提供 CowStr
和 CowBytes
,如果可能,将反序列化为 Cow::Borrowed
,从原始数据借用。
示例
use std::borrow::Cow;
use serde_cow::CowStr;
let source = r#""Hello World""#;
let normal: Cow<str> = serde_json::from_str(source).unwrap();
assert!(matches!(normal, Cow::Owned(_))); // Wasteful!
let efficent: CowStr = serde_json::from_str(source).unwrap();
assert!(matches!(efficent.0, Cow::Borrowed(_))); // Zero copy!
最低支持的 Rust 版本
目前是 1.56,预计会增加破坏性更改。
依赖项
~110–345KB