Expand description
vantage-vista-factory — a multi-datasource Vista catalog and the home of
cross-persistence reference traversal.
A single Vista reads one table from one driver and can traverse its
own same-persistence references (forwarded to the typed Table’s
with_one/with_many, gated by
VistaCapabilities::can_traverse_to_record).
It deliberately knows nothing about other datasources.
VistaCatalog sits one layer up: it is given the set of models in the
system (a “folder of models”, resolved to name → loader), can build any of
them by name regardless of which driver backs it, and traverses references
whose target lives in a different persistence. It is the single home for
what used to be three or four separate name→Vista resolvers:
vantage-cli-util’s ModelFactory, vantage-api-client’s ModelResolver,
and the UI backend’s ResolverContext::load_target_vista.
The catalog is deliberately config-agnostic and driver-agnostic:
it holds ModelLoader closures keyed by model name (registration-based,
so no dependency on any driver crate or on a particular config schema).
Callers populate it however they like — from a YAML inventory folder, from
hand-built typed tables, or from a test fixture.
Structs§
- Relation
- A cross-persistence relation: the target is another model resolved by name through the catalog, then narrowed by reading join values out of a known parent row.
- Vista
Catalog - A name →
Vistacatalog spanning many datasources, plus cross-persistence reference traversal between the models it holds.
Type Aliases§
- Model
Loader - Produces a fresh, unconditioned target
Vistaon demand.