2 个版本

0.1.1 2024年1月29日
0.1.0 2024年1月29日

1343解析器实现

MIT 许可证

12KB
174

Txtar

txtar 库实现了简单的基于文本的文件归档格式。此格式已从同名 go 包移植过来。

该格式的目标是

  • 足够简单,可以手动创建和编辑。
  • 能够存储描述 go 命令测试用例的文本文件树。
  • 在 git 历史和代码审查中差异明显。

不包括的目标包括成为一个完全通用的归档格式、存储二进制数据、存储文件模式、存储特殊文件(如符号链接)等。

Txtar 格式

Txtar 归档由零个或多个注释行组成,然后是一系列文件条目。每个文件条目以一个文件标记行开始,形式为"-- FILENAME --",后面跟着零个或多个组成文件数据的文件内容行。注释或文件内容在下一个文件标记行结束。文件标记行必须以三个字节序列"-- "开始,以三个字节序列" --"结束,但包含的文件名可以由额外的空白字符包围,所有这些都将被删除。

如果 txtar 文件在最后一行缺少换行符,解析器应考虑在最后仍然存在一个换行符。

Txtar 归档中没有可能的语法错误。

Comment1
Comment 2 is here
-- file 1 --
This is the
content of file 1
-- file2  --
This is the conten of file 2

阅读示例

您可以使用 Archive::from 将字符串转换为归档

use txtar::Archive;
                                                           
let tx_str = "comment1
comment2
-- file1 --
This is file 1
-- file2 --
this is file2
";
                                                           
let archive = Archive::from(tx_str);
assert_eq!(archive.comment, "comment1\ncomment2\n");
``

无运行时依赖