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
34
35
36
37
38
39
40
//! The ASDF engine: file layout, binary blocks, and the tree.
//!
//! This crate holds all the behaviour. The C ABI shim (`libasdf-rs`) and the
//! idiomatic Rust API (`asdf`) are both thin projections of it, so the two
//! public faces cannot drift apart in semantics. Nothing here knows about C.
// The engine is safe Rust with exactly one exception: memory-mapping a file
// for reading, which no safe API can express. `deny` rather than `forbid` so
// that one use can be allowed explicitly and reviewed on sight; every
// `#[allow(unsafe_code)]` in this crate must carry a justification.
// Named so `alloc::` paths can be written directly. The crate links `std`,
// but spelling each item at the narrowest layer that defines it keeps a
// future `no_std` build a small step away.
extern crate alloc;
/// The ASDF YAML layer: document model, parser and emitter.
///
/// Re-exported so that crates layered on the engine -- the C ABI shim and the
/// idiomatic API -- have a single dependency edge rather than needing to
/// track `asdf-yaml`'s version themselves.
pub use asdf_yaml as yaml;
pub use ;
pub use ;
pub use ;
pub use Version;
pub use ;