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
//! Library for collecting and packing resources into a bundle with a manifest
//! file which describes those resources.
//!
//! A [`Bundle`](crate::Bundle) contains a [`Manifest`](crate::Manifest) as well as any number of arbitrary,
//! opaque resources in the form of [`ResourceBytes`](crate::ResourceBytes).
//! A Bundle can be serialized and written to a file.
//!
//! A Bundle can also be [packed](Bundle::pack_yaml) and [unpacked](Bundle::unpack_yaml),
//! via the `"packing"` feature.
//! Bundle packing is performed by following the [`Location`](crate::Location)s specified in the
//! Manifest as "Bundled", and pulling them into the Bundle that way.
//! Unpacking is done by specifying a target directory and creating a new file
//! for each resource at a relative path specified by the Manifest.

#![warn(missing_docs)]

mod bundle;
mod encoding;
pub mod error;
mod location;
mod manifest;
mod resource;
pub(crate) mod util;

#[cfg(feature = "packing")]
mod packing;

pub use bundle::Bundle;
pub use encoding::{decode, encode};
pub use location::Location;
pub use manifest::Manifest;
pub use resource::ResourceBytes;