# Functions

New returns a Cache wrapping constructor such that resources returned from Require are shared between all calls to Require with the same options, if shared is set to true.

# Variables

ErrDisposableSizeNotSupported should be returned from DiskSize() and MemorySize() if said feature is not supported.

# Structs

A Cache is an object that wraps a constructor and manages the life-cycle of objects.
Handle holds a reference to a Resource until Release() is called.

# Interfaces

Context for creation of resources.
A Resource that can be cached must also be disposable.

# Type aliases

A Constructor is function that given options creates a resource.