Crate mtree[−][src]
A library for iterating through entries of an mtree.
mtree is a data format used for describing a sequence of files. Their location is record, along with optional extra values like checksums, size, permissions etc.
For details on the spec see mtree(5).
Examples
use mtree::MTree; use std::time::{SystemTime, UNIX_EPOCH}; // We're going to load data from a string so this example with pass doctest, // but there's no reason you can't use a file, or any other data source. let raw_data = " /set type=file uid=0 gid=0 mode=644 ./.BUILDINFO time=1523250074.300237174 size=8602 md5digest=13c0a46c2fb9f18a1a237d4904b6916e \ sha256digest=db1941d00645bfaab04dd3898ee8b8484874f4880bf03f717adf43a9f30d9b8c ./.PKGINFO time=1523250074.276237110 size=682 md5digest=fdb9ac9040f2e78f3561f27e5b31c815 \ sha256digest=5d41b48b74d490b7912bdcef6cf7344322c52024c0a06975b64c3ca0b4c452d1 /set mode=755 ./usr time=1523250049.905171912 type=dir ./usr/bin time=1523250065.373213293 type=dir "; let entries = MTree::from_reader(raw_data.as_bytes()); for entry in entries { // Normally you'd want to handle any errors let entry = entry.unwrap(); // We can print out a human-readable copy of the entry println!("{}", entry); // Let's check that if there is a modification time, it's in the past if let Some(time) = entry.params.time { assert!(time < SystemTime::now()); } // We might also want to take a checksum of the file, and compare it to the digests // supplied by mtree, but this example doesn't have access to a filesystem. }
Structs
Array48 |
A newtype around an array. All traits are implemented as you would expect on the raw array. |
Array64 |
A newtype around an array. All traits are implemented as you would expect on the raw array. |
Device |
A unix device. |
Entry |
An entry in the mtree file. |
FileMode |
The file/dir permissions for owner/group/everyone else. |
MTree |
An mtree parser (start here). |
Params |
All possible parameters to an entry. |
ParserError |
An error occurred during parsing a record. |
Perms |
Unix file permissions. |
Enums
Error |
The error type for this crate. |
Format |
The available device formats. |
MTreeLine |
An mtree file is a sequence of lines, each a semantic unit. |
Type |
The type of an entry. |