2 个不稳定版本
0.2.0 | 2021 年 12 月 30 日 |
---|---|
0.1.0 | 2021 年 12 月 29 日 |
#1164 in 编码
每月 21 次下载
14KB
235 行
serde-csv-extra
与 CSV 相关的 serde 扩展
use serde::{Deserialize, Serialize};
#[derive(Deserialize, Serialize)]
struct Foo {
#[serde(with = "serde_csv_extra::vec_num")]
list: Vec<i32>,
#[serde(with = "serde_csv_extra::vec_vec_num")]
matrix: Vec<Vec<i32>>,
#[serde(with = "serde_csv_extra::maybe_image_size")]
image_size: Option<(u8, u16)>,
#[serde(with = "serde_csv_extra::maybe_lat_lon")]
geo: Option<(f32, f32)>,
}
let mut wtr = csv::WriterBuilder::new().has_headers(false).from_writer(Vec::new());
wtr.serialize(
Foo {
list: vec![-1, 1],
matrix: vec![vec![-1, 1], vec![1, -1]],
image_size: Some((16, 1024)),
geo: Some((84.99, -135.00)),
}
).unwrap();
wtr.serialize(
Foo {
list: vec![],
matrix: vec![],
image_size: None,
geo: None,
}
).unwrap();
let s = String::from_utf8(wtr.into_inner().unwrap()).unwrap();
assert_eq!(s, "-1_1,-1_1|1_-1,16x1024,84.99;-135\n,,,\n");
贡献
我们感谢所有形式的贡献,谢谢!
关于 README 的说明
README.md
文件不应该直接更改。它由 cargo-readme 命令从 crate 的文档生成。
- 如果没有安装,请执行以下命令:
cargo install cargo-readme
- 在
src/lib.rs
中更改 crate 级别文档,或在README.tpl
中包裹文本。 - 应用更改:
cargo readme > README.md
如果您已安装 rusty-hook,则更改将在提交时自动应用。
许可证
本项目受 MIT 许可证 的许可。
依赖项
~0.4–1MB
~23K SLoC