3个版本
0.0.4 | 2024年6月16日 |
---|---|
0.0.3 | 2024年1月31日 |
0.0.2 | 2024年1月31日 |
#1247 in 编码
84 个月下载
用于 convert2json
27KB
704 行
rsv
一个用于Rust的RSV读取器和写入器包。
什么是rsv?
字符串值行(rsv)是对csv格式的修改,用未使用的Unicode字节替换分隔符字符。这使得编码和解码变得极其简单和一致。
在此处找到Stenway创建的规范这里
示例
use rsv_core::reader::Reader;
use rsv_core::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
~22K SLoC