add Rename() support
This commit is contained in:
parent
46f4078530
commit
4a10e24f29
12
cache.go
12
cache.go
|
@ -115,6 +115,18 @@ func (c *cache) Replace(k string, x interface{}, d time.Duration) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (c *cache) Rename(oldk, newk string) error {
|
||||
c.mu.Lock()
|
||||
defer c.mu.Unlock()
|
||||
item, found := c.get(oldk)
|
||||
if !found {
|
||||
return fmt.Errorf("Item %s doesn't exist", oldk)
|
||||
}
|
||||
delete(c.items, oldk)
|
||||
c.items[newk] = item
|
||||
return nil
|
||||
}
|
||||
|
||||
// Get an item from the cache. Returns the item or nil, and a bool indicating
|
||||
// whether the key was found.
|
||||
func (c *cache) Get(k string) (interface{}, bool) {
|
||||
|
|
|
@ -1137,6 +1137,19 @@ func TestReplace(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestRename(t *testing.T) {
|
||||
tc := New(DefaultExpiration, 0)
|
||||
err := tc.Rename("foo", "bar")
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
tc.Set("foo", 123, DefaultExpiration)
|
||||
err = tc.Rename("foo", "bar")
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDelete(t *testing.T) {
|
||||
tc := New(DefaultExpiration, 0)
|
||||
tc.Set("foo", "bar", DefaultExpiration)
|
||||
|
|
Loading…
Reference in New Issue