1 个不稳定版本
0.1.0 | 2020年3月15日 |
---|
#2008 在 编码
12KB
374 行
recfiles & serde_rec
从 rust 管理 GNU Recfiles。
安装
recfiles
(内存中的 recfile 处理) & serde_rec
(serde 的数据格式)在 crates.io。
使用方法
use recfiles::Record;
use serde_rec::to_string;
#[derive(Default, Serialize)]
#[serde(rename_all="PascalCase")]
struct Book {
author: Vec<String>,
title: String,
publisher: Option<String>,
}
impl Record for Book {}
let book = Book {
author: vec![String::from("A.E.J. Eliott, OBE")],
title: String::from("Thirty Days in the Samarkind Desert with the Duchess of Kent"),
..Default::default()
}
let serialised = to_string(&book).unwrap();
assert_eq!(serialised, textwrap::dedent("
Author: A.E.J. Eliott, OBE
Title: Thirty Days in the Samarking Desert with the Duchess of Kent
");
我们还可以指定 'Book' 的记录描述符
let book_descriptor = recfiles::Descriptor {
name: String::from("Book"),
key: vec![String::from("Title")],
allowed: vec![String::from("Publisher"),
}
并序列化完整的记录集
let rs = recfiles::RecordSet {
descriptor: Some(book_descriptor),
records: vec![book],
}
serde_rec::to_string(&rs);
工作正在进行中
这是一个正在进行中的项目,目前不完整且文档不佳。
(撰写本文时,以上就是你所能得到的全部内容了 😉。)
即将推出...
- 反序列化
- 推导描述符
- 文件(而不是仅从字符串到字符串)辅助工具
- 内存(而不是通过
recutils
外壳)查询辅助工具 - 文档!
依赖关系
~0.4–1MB
~23K SLoC