0.0.2 |
|
---|
#76 in #row
27KB
704 代码行
rsv
为 Rust 提供的 rsv 读取器和写入器 crate。
什么是 rsv?
字符串值行(rsv)是对 csv 格式的修改,用未使用的 Unicode 字节替换分隔符字符。这使得编码和解码变得非常简单和一致。
在这里找到由 Stenway 创建的规范
示例
use rsv::reader::Reader;
use rsv::writer::Writer;
use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, Serialize)]
struct ExampleStruct {
_num: i32,
_string: String,
_option: Option<f64>,
// _vec_option: Vec<Option<f64>>,
}
fn writer() {
let mut w = Writer::from_path("basic-serde-example.bin").unwrap();
let a = ExampleStruct { _num: 30202, _string: "Hello Stenway!".to_string(), _option: None };
let b = ExampleStruct { _num: -30202, _string: "Hello Stenway!".to_string(), _option: Some(3.14) };
w.serialize(&a).unwrap();
w.serialize(&b).unwrap();
}
fn reader() {
let mut r = Reader::from_path("basic-serde-example.bin").unwrap();
// If the compiler is unable to implicitly determine the type you may need
// to explicitly set it.
let mut r = r.deserialize::<ExampleStruct>();
println!("{:#?}", r.next().unwrap());
println!("{:#?}", r.next().unwrap());
assert!(r.next().is_none());
}
依赖关系
~0.4–1MB
~23K SLoC