2 个不稳定版本

0.1.0 2022年12月12日
0.0.1 2022年9月29日

#520 in 压缩

MIT/Apache

57KB
1K SLoC

该crate提供了一个库,用于在单个文件中存储和加载文档内容。

内容组织成页面。页面的集合是书籍。页面和书籍都可以包含元数据条目。

书籍

该crate中的主要类型是Book。一个Book可以包含多个页面元数据条目

创建新的书籍

使用BookBuilder创建新的书籍。

使用add_metadatanew_page添加内容。

书籍完成后,可以使用dump进行持久化。

可选地,可以使用set_compression进行数据压缩。

示例

use theory::{MetadataEntry, Book, Page};
use std::io::{Cursor, Read, Write};

let mut buffer: Vec<u8> = Vec::new();

let mut builder = Book::builder();
builder.new_page("First").set_content("1");
builder.new_page("Second").set_content("2");

builder
    .add_metadata(MetadataEntry::Title("Theory Example".into()))
    .dump(Cursor::new(&mut buffer));

let book = Book::load(Cursor::new(buffer)).unwrap();

assert_eq!(book.num_pages(), 2);

加载书籍

使用BookBuilder::dump编写的书籍可以使用Book::load加载。

crate 特性

特性可以用来控制库中的一些功能

  • deflate

    添加对使用DEFLATE压缩书籍的支持。

  • lz4

    添加对使用LZ4压缩书籍的支持。

所有特性默认启用。

依赖关系

~0.7–1.3MB
~33K SLoC