1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#![warn(missing_docs)]
#![warn(clippy::unwrap_used)]
#![allow(clippy::new_without_default)]

//! Parcel file format for managing pyxis packages.

use std::time::UNIX_EPOCH;

pub use error::ParcelError;
pub use inode::{FileAttr, InodeAttr, InodeKind};
pub use parcel::{FileAdd, Parcel};

/// Error codes
mod error;
/// Inodes and utilities for representing items within a parcel.
mod inode;
/// Parcel metadata for the package manager
mod metadata;
/// The parcel container. Classes and methods.
mod parcel;

const PARCEL_VERSION: u32 = 1;

const ROOT_ATTRS: InodeAttr = InodeAttr {
    atime: UNIX_EPOCH,
    mtime: UNIX_EPOCH,
    ctime: UNIX_EPOCH,
    perm:  0o755,
    nlink: 1,
    uid:   0,
    gid:   0,
    rdev:  0,
};