1个不稳定版本

0.1.0 2020年3月15日

#1200数据库接口

MIT 许可证

6KB
142

recfiles & serde_rec

从Rust管理GNU Recfiles。

recfiles serde_rec

安装

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