From 864260ce38745045b181b9b3231d5dc7166a76a6 Mon Sep 17 00:00:00 2001 From: Dmitriy Olshevskiy Date: Mon, 16 Apr 2018 20:39:45 +0300 Subject: [PATCH] set struct Item as the IsExpire() method's receiver so we can: - reduce if-clauses to check if the item is expired - refuse to use the field Item.Expire unnecessarily --- item/item.go | 4 ++-- mcache.go | 4 ++-- safeMap/safe.go | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/item/item.go b/item/item.go index 7cad42a..d76b261 100644 --- a/item/item.go +++ b/item/item.go @@ -11,6 +11,6 @@ type Item struct { } // check expire cache -func IsExpire(t time.Time) bool { - return t.Before(time.Now().Local()) +func (i Item) IsExpire() bool { + return i.Expire.Before(time.Now().Local()) } diff --git a/mcache.go b/mcache.go index 105275b..2fda25b 100644 --- a/mcache.go +++ b/mcache.go @@ -44,7 +44,7 @@ func (mc *CacheDriver) Get(key string, struc interface{}) bool { return false } item := data.(entity.Item) - if entity.IsExpire(item.Expire) { + if item.IsExpire() { return false } err := decodeBytes(item.Data, struc) @@ -61,7 +61,7 @@ func (mc *CacheDriver) GetPointer(key string) (interface{}, bool) { return entity.Item{}.DataLink, false } item := data.(entity.Item) - if entity.IsExpire(item.Expire) { + if item.IsExpire() { return entity.Item{}.DataLink, false } return item.DataLink, true diff --git a/safeMap/safe.go b/safeMap/safe.go index 0d4d909..d566bfb 100644 --- a/safeMap/safe.go +++ b/safeMap/safe.go @@ -118,7 +118,7 @@ func flush(s map[string]interface{}, keys []string) { if !ok { continue } - if entity.IsExpire(value.(entity.Item).Expire) { + if value.(entity.Item).IsExpire() { delete(s, v) } }