package cache import ( "electricity_bill_calc/config" ) func CacheData[T interface{}](instance T, category string, key ...string) error { var keys = make([]string, 0) keys = append(keys, category) keys = append(keys, key...) cacheKey := CacheKey("cache", keys...) if exists, _ := Exists(cacheKey); exists { Delete(cacheKey) } return Cache(cacheKey, &instance, config.ServiceSettings.CacheLifeTime) } func RetreiveData[T interface{}](category string, key ...string) (*T, error) { var keys = make([]string, 0) keys = append(keys, category) keys = append(keys, key...) return Retreive[T](CacheKey("cache", keys...)) } func AbolishCacheData(category string, key ...string) { var keys = make([]string, 0) keys = append(keys, category) keys = append(keys, key...) cacheKey := CacheKey("cache", keys...) if exists, _ := Exists(cacheKey); exists { Delete(cacheKey) } }