pub struct Layout {
pub target: Target,
pub hardware: Hardware,
pub layers: Vec<Layer>,
pub leaf: BTreeMap<String, Entry>,
pub common: BTreeMap<String, Entry>,
pub leaf_subdirs: BTreeMap<String, PathBuf>,
pub common_subdirs: BTreeMap<String, PathBuf>,
pub shadows: Vec<Shadow>,
pub source_model: String,
pub model_dir: PathBuf,
}Fields§
§target: Target§hardware: Hardware§layers: Vec<Layer>2026-09-26: Own leaf, parent leaf, own common, parent common; the parent pair only when the tree inherits.
leaf: BTreeMap<String, Entry>2026-09-26: Leaf-role files by name.
common: BTreeMap<String, Entry>2026-09-26: Common-role files by name.
leaf_subdirs: BTreeMap<String, PathBuf>2026-09-26: Subdirectories of the role directories (e.g. vendored headers), by name.
common_subdirs: BTreeMap<String, PathBuf>§shadows: Vec<Shadow>§source_model: String2026-09-26: The model whose own-tier leaf directory this target reads, after redirect.
model_dir: PathBuf2026-09-26: kernels/<hw>/<model>, the target’s own model directory.
Implementations§
Source§impl Layout
impl Layout
Sourcepub fn configs(&self) -> Vec<PathBuf>
pub fn configs(&self) -> Vec<PathBuf>
2026-09-26: The KERNEL.tomls that exist, least specific first:
parent common, own common, parent leaf, own leaf. The build script
merges them in this order (build_resolve.rs).
Sourcepub fn modules(&self) -> Vec<(String, &Entry)>
pub fn modules(&self) -> Vec<(String, &Entry)>
2026-09-26: (stem, entry) for every module source, sorted by stem:
leaf over common.
Sourcepub fn inputs(&self) -> BTreeSet<PathBuf>
pub fn inputs(&self) -> BTreeSet<PathBuf>
2026-09-26: Every file the target’s compile reads through this
resolution: the role entries, every file under the role
subdirectories, and the KERNEL.tomls. The build script watches them
for rebuilds (build_plan.rs).