// Package cache is a caching interface package cache // Cache is an interface for caching type Cache interface { // Initialise options Init(...Option) error // Get a value Get(key string) (interface{}, error) // Set a value Set(key string, val interface{}) error // Delete a value Delete(key string) error // Name of the implementation String() string } type Options struct { Nodes []string } type Option func(o *Options) // Nodes sets the nodes for the cache func Nodes(v ...string) Option { return func(o *Options) { o.Nodes = v } }