Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Cache

type Cache struct {
	// contains filtered or unexported fields
}

    Cache implements a lazy initializing cache. A cache entry is created the first time a value is accessed (via Get or MustGet) by invoking the provided Initializer. If the Initializer returns an error then the entry will not be added.

    func New

    func New(name string, initializer EntryInitializer, opts ...options.Opt) *Cache

      New creates a new lazy cache. - name is the name of the cache and is only used for debugging purpose - initializer is invoked the first time an entry is being cached - opts are options for the cache. If any lazyref option is passed then a lazy reference

      is created for each of the cache entries to hold the actual value. This makes it possible
      to have expiring values and values that proactively refresh.
      

      func NewWithData

      func NewWithData(name string, initializer EntryInitializerWithData, opts ...options.Opt) *Cache

        NewWithData creates a new lazy cache. The provided initializer accepts optional data that is passed in from Get(). - name is the name of the cache and is only used for debugging purpose - initializer is invoked the first time an entry is being cached - opts are options for the cache. If any lazyref option is passed then a lazy reference

        is created for each of the cache entries to hold the actual value. This makes it possible
        to have expiring values and values that proactively refresh.
        

        func (*Cache) Close

        func (c *Cache) Close()

          Close does the following: - calls Close on all values that implement a Close() function - deletes all entries from the cache - prevents further calls to the cache

          func (*Cache) Delete

          func (c *Cache) Delete(key Key)

            Delete does the following: - calls Close on all values that implement a Close() function - deletes key from the cache

            func (*Cache) DeleteAll

            func (c *Cache) DeleteAll()

              DeleteAll does the following: - calls Close on all values that implement a Close() function - deletes all entries from the cache

              func (*Cache) Get

              func (c *Cache) Get(key Key, data ...interface{}) (interface{}, error)

                Get returns the value for the given key. If the key doesn't exist then the initializer is invoked to create the value, and the key is inserted. If the initializer returns an error then the key is removed from the cache.

                Example
                Output:
                
                
                Example (Expiring)
                Output:
                
                
                Example (ExpiringWithData)
                Output:
                
                

                func (*Cache) IsClosed

                func (c *Cache) IsClosed() bool

                  IsClosed reeturns true if the cache has been closed

                  func (*Cache) MustGet

                  func (c *Cache) MustGet(key Key) interface{}

                    MustGet returns the value for the given key. If the key doesn't exist then the initializer is invoked to create the value and the key is inserted. If an error is returned during initialization of the value then this function will panic.

                    Example
                    Output:
                    
                    Value_for_key_Key1
                    

                    func (*Cache) Name

                    func (c *Cache) Name() string

                      Name returns the name of the cache (useful for debugging)

                      type EntryInitializer

                      type EntryInitializer func(key Key) (interface{}, error)

                        EntryInitializer creates a cache value for the given key

                        type EntryInitializerWithData

                        type EntryInitializerWithData func(key Key, data interface{}) (interface{}, error)

                          EntryInitializerWithData creates a cache value for the given key and the additional data passed in from Get(). With expiring cache entries, the initializer is called with the same key, but the latest data is passed from the Get() call that triggered the data to be cached/re-cached.

                          type Key

                          type Key interface {
                          	String() string
                          }

                            Key holds the string key for the cache entry

                            type StringKey

                            type StringKey struct {
                            	// contains filtered or unexported fields
                            }

                              StringKey is a simple string cache key

                              func NewStringKey

                              func NewStringKey(key string) *StringKey

                                NewStringKey returns a new StringKey

                                func (*StringKey) String

                                func (k *StringKey) String() string

                                  String returns the key as a string