Walks a schema's chain of levels and reports where each value came from. More...
| Header: | #include <Resolver> |
| Inherits: | config::Reader |
Lifted from Construct's `SettingsResolver` (config-ui §CFGS-1). It takes a Schema instead of the Construct registry, it owns a ChangeNotifier, it validates on read and on write, it can rate-limit a level, and it publishes snapshots for other threads (config-ui §CFGM-4, §CFGM-5, §CFGM-7).
The resolver does not decide where a value lives. The stores do. It shares ownership of them, so a store outlives every resolver that names it.
A schema can name a seed level: a template that new work copies. The seed store is registered beside the chain, so a write to the template never changes existing work. resolve() reads it for one kind of row only: a row no chain level can hold, such as a machine-local setting, whose only home is the seed level. resolveAsSeenFrom() the seed level shows the seed, because that is what new work starts with.