Crates.io | rs-txtar |
lib.rs | rs-txtar |
version | 0.1.1 |
source | src |
created_at | 2024-01-29 13:47:59.628548 |
updated_at | 2024-01-29 14:20:52.776123 |
description | Rust implementation of the txtar format |
homepage | |
repository | |
max_upload_size | |
id | 1118941 |
size | 15,002 |
The txtar crate implements a trivial text-based file archive format. This has been ported from the go package of the same name.
The goals for the format are:
Non-goals include being a completely general archive format, storing binary data, storing file modes, storing special files like symbolic links, and so on.
A txtar archive is zero or more comment lines and then a sequence of file entries. Each file entry begins with a file marker line of the form "-- FILENAME --" and is followed by zero or more file content lines making up the file data. The comment or file content ends at the next file marker line. The file marker line must begin with the three-byte sequence "-- " and end with the three-byte sequence " --", but the enclosed file name can be surrounding by additional white space, all of which is stripped.
If the txtar file is missing a trailing newline on the final line, parsers should consider a final newline to be present anyway.
There are no possible syntax errors in a txtar archive.
Comment1
Comment 2 is here
-- file 1 --
This is the
content of file 1
-- file2 --
This is the conten of file 2
You can use Archive::from
to convert a string to an archive
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");
``