Expand description
Typed model contracts for the Winbrew workspace.
winbrew-models owns the stable Rust data types shared by the parser,
storage, engines, UI, and CLI layers. The crate is intentionally split into
a small set of domain families so consumers can import the exact concept
they need without depending on a broad compatibility surface.
Public namespaces:
shared: errors, validation, identifiers, config, hash, deployment, and versionpackage: package identity, queries, dependencies, and package aggregatescatalog: typed catalog records and raw upstream catalog payloadscommand_resolution: command exposure results, confidence, provenance, and fingerprintinginstall: installer metadata, engine receipts, installed state, and removal planningreporting: diagnostics, health reports, and recovery findingsmsi_inventory: MSI snapshot records used for repair and inventory persistence
The domains facade remains as the stable grouping layer for downstream
callers. Inside this crate, prefer the owning module paths; outside the
crate, prefer crate::domains::... when a grouped namespace is clearer than
a direct module path.
Modulesยง
- catalog
- Typed catalog payloads and raw upstream catalog records.
- command_
resolution - domains
- Grouped namespace for the major model families.
- install
- Installer metadata, engine receipts, installed state, and removal planning.
- msi_
inventory - MSI inventory snapshot records.
- package
- Package identity and query models.
- reporting
- Diagnostics, info, and recovery reports.
- shared
- Foundational types shared across every model family.