Simple EName provider using an immutable cache.
Simple caching EName provider.
Thread-local ENameProvider.
Trivial, non-caching, EName provider.
"Updatable" EName provider.
The implicit global ENameProvider is by default a "trivial" ENameProvider, but can be updated.
The implicit global ENameProvider is by default a "trivial" ENameProvider, but can be updated.
Being a val holding an UpdatableENameProvider, instead of a var holding any ENameProvider, the identifier
ENameProvider.globalENameProvider
is stable, and therefore its members can be imported.
Be careful: this global instance should be updated only during the "startup phase" of the application. Also be careful to choose an instance that is thread-safe and designed for a "long life" (unlike caching providers that can only grow a lot).