A CleverError is a special kind of abort code that is used to encode more information than a
normal abort code. These clever errors are used to encode the line number, error constant name,
and error constant value as pool indicies packed into a format satisfying the ErrorBitset
format. This struct is the “inflated” view of that data, providing the module ID, line number,
and error constant name and value (if available).
Fully qualified struct identifier. Uses copy-on-write strings so that when it is used as a key
to a map, an instance can be created to query the map without having to allocate strings on the
heap.
Caches parsed packages by address in an LRU cache. Cache hits do not recheck the backing
store. Callers must evict entries when system packages are upgraded, or use a fresh cache
for each response against a fixed package view.
The Resolver is responsible for providing information about types. It relies on its internal
package_store to load packages and then type definitions from those packages.
Synchronous sibling of Resolver, driven by a SyncPackageStore. Intended for hot-path
callers (validator/authority execution) where the underlying storage is synchronous and
async machinery would just add overhead.
The ErrorConstants enum is used to represent the different kinds of error information that
can be returned from a clever error when looking at the constant values for the clever error.
These values are either: