Skip to main content

quadlet_lens/
lib.rs

1//! Source-aware parsing, modeling, generation, compatibility evaluation, and rendering of Podman
2//! Quadlet files.
3//!
4//! `QuadletLens` keeps physical source syntax separate from typed native meaning and target-version
5//! evidence. Parsing and generation are in-memory operations: the crate never invokes Podman,
6//! operates systemd, discovers neighboring files, or mutates a host.
7//!
8//! # Parse a document
9//!
10//! ```
11//! use quadlet_lens::{
12//!     model::{QuadletDocument, QuadletUnitType},
13//!     source::SourceId,
14//! };
15//!
16//! let source = "[Container]\nImage=example.invalid/web:1\n";
17//! let parsed = QuadletDocument::parse(
18//!     QuadletUnitType::Container,
19//!     SourceId::new(1),
20//!     source,
21//! )
22//! .expect("valid Quadlet input");
23//!
24//! assert!(parsed.is_valid());
25//! ```
26//!
27//! # Modules
28//!
29//! - [`syntax`] retains ordered physical syntax and renders preserved or canonical text.
30//! - [`model`] exposes typed native documents and multi-file relationships.
31//! - [`render`] constructs and validates new documents.
32//! - [`capability`] evaluates evidence over explicit Podman and systemd targets.
33//! - [`diagnostic`], [`source`], and [`path`] provide reporting and conservative source metadata.
34
35pub mod capability;
36pub mod diagnostic;
37pub mod model;
38pub mod path;
39pub mod render;
40pub mod source;
41pub mod syntax;