Versions in this module Expand all Collapse all v1 v1.2.0 Aug 30, 2023 Changes in this version + const InitImmediately + const InitOnFirstAccess + func WithAbsoluteExpiration(value time.Duration) options.Opt + func WithExpirationProvider(expirationProvider ExpirationProvider, expiryType ExpirationType) options.Opt + func WithFinalizer(finalizer Finalizer) options.Opt + func WithIdleExpiration(value time.Duration) options.Opt + func WithRefreshInterval(initialInit, refreshPeriod time.Duration) options.Opt + type ExpirationProvider func() time.Duration + func NewGraduatingExpirationProvider(initialExpiry, increments, maxExpiry time.Duration) ExpirationProvider + func NewSimpleExpirationProvider(expiry time.Duration) ExpirationProvider + type ExpirationType uint + const LastAccessed + const LastInitialized + const Refreshing + type Finalizer func(value interface{}) + type Initializer func() (interface{}, error) + type InitializerWithData func(data interface{}) (interface{}, error) + type Reference struct + func New(initializer Initializer, opts ...options.Opt) *Reference + func NewWithData(initializer InitializerWithData, opts ...options.Opt) *Reference + func (p *Reference) SetAbsoluteExpiration(expiration time.Duration) + func (p *Reference) SetExpirationProvider(expirationProvider ExpirationProvider, expiryType ExpirationType) + func (p *Reference) SetFinalizer(value Finalizer) + func (p *Reference) SetIdleExpiration(expiration time.Duration) + func (p *Reference) SetRefreshInterval(initialInit, refreshPeriod time.Duration) + func (r *Reference) Close() + func (r *Reference) Get(data ...interface{}) (interface{}, error) + func (r *Reference) IsClosed() bool + func (r *Reference) MustGet() interface{}