Documentation
¶
Overview ¶
Package compose merges several resolved sources into one canonical tree.
Composition is closed-world: every final path has exactly one source owner, collisions fail rather than resolve, and the order sources appear in a manifest is not an input to the result (DP-011). There is no overlay, no precedence, and no last-one-wins.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Owner ¶
type Owner struct {
// Source is the logical source name.
Source string
// SourcePath is the path within that source, before mounting.
SourcePath canonical.Path
}
Owner records which source a final path came from.
type Result ¶
type Result struct {
// Records is the canonical inventory, sorted by final path.
Records []canonical.FileRecord
// Owners maps every final path to its single owner.
Owners map[canonical.Path]Owner
// contains filtered or unexported fields
}
Result is a composed tree.
func Compose ¶
Compose merges sources into one canonical tree.
Sources are sorted by name before anything else happens, so that the result — including which collision is reported when there are several — does not depend on the order they were resolved in. Resolution is concurrent, and concurrency must not be observable in the output (DP-012).
type Source ¶
type Source struct {
// Name is the logical source name.
Name string
// MountPath places the source below a prefix. Empty mounts at the root.
MountPath string
// Snapshot holds the resolved, filtered material.
Snapshot source.Snapshot
}
Source is one resolved source awaiting placement.