Cache values in-memory, and automatically load/save them as needed via the specified functions.
Actual loading/saving is done via alias functions.
KeyGetter may return .init (of its return type) if the resource does not yet exist,
but once it returns non-.init it may not return .init again.
A bool key can be used to load a resource from disk only once (lazily),
as is currently done with LoadPolicy.once.
Delayed flush policies require a bool key, to avoid mid-air collisions.
Cache values in-memory, and automatically load/save them as needed via the specified functions. Actual loading/saving is done via alias functions. KeyGetter may return .init (of its return type) if the resource does not yet exist, but once it returns non-.init it may not return .init again. A bool key can be used to load a resource from disk only once (lazily), as is currently done with LoadPolicy.once. Delayed flush policies require a bool key, to avoid mid-air collisions.