3个不稳定版本
0.2.0 | 2022年8月17日 |
---|---|
0.1.1 | 2022年8月17日 |
0.1.0 | 2021年11月26日 |
#2967 在 解析器实现
54 每月下载量
用于 csv-partial-cache
9KB
107 行
快速解析单行CSV。
用法
#[derive(Debug, PartialEq, serde::Deserialize)]
struct Foo(String, i32);
assert_eq!(csv_line::from_str::<Foo>("foo,42").unwrap(), Foo("foo".into(), 42));
assert_eq!(csv_line::from_str_sep::<Foo>("foo 42", b' ').unwrap(), Foo("foo".into(), 42));
速度
性能与 serde_json 相当(越小越好)
test csv_builder ... bench: 16,003 ns/iter (+/- 914)
test csv_core ... bench: 15,695 ns/iter (+/- 1,155)
test csv_line ... bench: 240 ns/iter (+/- 14)
test serde_json ... bench: 124 ns/iter (+/- 5)
基准代码在此:这里。
安全性
此crate使用 #![forbid(unsafe_code)]
确保所有内容都在100%安全的Rust中实现。
贡献
我们感谢所有类型的贡献,谢谢!
关于README的说明
大多数README是从crate文档自动复制过来的,由 cargo-readme-sync 实现。这样,README总是与文档同步,并且示例经过测试。
因此,如果您想在 <!-- cargo-sync-readme start -->
和 <!-- cargo-sync-readme end -->
标记之间更改README的一部分,请不要直接编辑 README.md
,而是更改 src/lib.rs
顶部的文档,然后使用以下命令同步README:
cargo sync-readme
(确保已安装cargo命令)
cargo install cargo-sync-readme
如果您已安装 rusty-hook,则更改将在提交时自动应用。
许可证
本项目受 MIT许可证 许可。
依赖项
~2–2.9MB
~42K SLoC