Documentation
¶
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Cache ¶
type Cache[K comparable, V any] struct { // contains filtered or unexported fields }
Cache is a simple cache has no clear priority for evict cache.
func NewCache ¶
func NewCache[K comparable, V any]() *Cache[K, V]
NewCache creates a new non-thread safe cache.
Example ¶
package main import ( "fmt" "github.com/Code-Hex/go-generics-cache/policy/simple" ) func main() { c := simple.NewCache[string, int]() c.Set("a", 1) c.Set("b", 2) av, aok := c.Get("a") bv, bok := c.Get("b") cv, cok := c.Get("c") fmt.Println(av, aok) fmt.Println(bv, bok) fmt.Println(cv, cok) c.Delete("a") _, aok2 := c.Get("a") if !aok2 { fmt.Println("key 'a' has been deleted") } // update c.Set("b", 3) newbv, _ := c.Get("b") fmt.Println(newbv) }
Output: 1 true 2 true 0 false key 'a' has been deleted 3
func (*Cache[K, V]) Delete ¶
func (c *Cache[K, V]) Delete(key K)
Delete deletes the item with provided key from the cache.
func (*Cache[K, V]) Get ¶
Get gets an item from the cache. Returns the item or zero value, and a bool indicating whether the key was found.
func (*Cache[K, _]) Keys ¶
func (c *Cache[K, _]) Keys() []K
Keys returns cache keys. the order is sorted by created.
Example ¶
package main import ( "fmt" "github.com/Code-Hex/go-generics-cache/policy/simple" ) func main() { c := simple.NewCache[string, int]() c.Set("foo", 1) c.Set("bar", 2) c.Set("baz", 3) keys := c.Keys() for _, key := range keys { fmt.Println(key) } }
Output: foo bar baz
func (*Cache[K, V]) Len ¶ added in v1.4.0
Len returns the number of items in the cache.
Example ¶
package main import ( "fmt" "github.com/Code-Hex/go-generics-cache/policy/simple" ) func main() { c := simple.NewCache[string, int]() c.Set("foo", 1) c.Set("bar", 2) c.Set("baz", 3) len := c.Len() fmt.Println(len) }
Output: 3
Click to show internal directories.
Click to hide internal directories.