Skip to main content

Crate vantage_vista_factory

Crate vantage_vista_factory 

Source
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.
VistaCatalog
A name → Vista catalog spanning many datasources, plus cross-persistence reference traversal between the models it holds.

Type Aliases§

ModelLoader
Produces a fresh, unconditioned target Vista on demand.