aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--internal/feed/cache/cache.go6
-rw-r--r--internal/feed/cache/cache_v1.go9
2 files changed, 10 insertions, 5 deletions
diff --git a/internal/feed/cache/cache.go b/internal/feed/cache/cache.go
index e69e8f3..3a80df1 100644
--- a/internal/feed/cache/cache.go
+++ b/internal/feed/cache/cache.go
@@ -18,12 +18,12 @@ import (
type Version byte
const (
- currentVersion Version = 1
+ currentVersion Version = v1Version
)
type Impl interface {
cachedFeed(*feed.Feed) CachedFeed
- transformToCurrent() (Impl, error)
+ transformTo(Version) (Impl, error)
Version() Version
Info() string
SpecificInfo(interface{}) string
@@ -169,7 +169,7 @@ func Load(fileName string) (Cache, error) {
return Cache{}, fmt.Errorf("decoding for version '%d' from '%s': %w", version, fileName, err)
}
- if cache, err = cache.transformToCurrent(); err != nil {
+ if cache, err = cache.transformTo(currentVersion); err != nil {
return Cache{}, fmt.Errorf("cannot transform from version %d to %d: %w", version, currentVersion, err)
}
diff --git a/internal/feed/cache/cache_v1.go b/internal/feed/cache/cache_v1.go
index cef26f6..7d95d4c 100644
--- a/internal/feed/cache/cache_v1.go
+++ b/internal/feed/cache/cache_v1.go
@@ -175,8 +175,13 @@ func newV1Cache() *v1Cache {
return &cache
}
-func (cache *v1Cache) transformToCurrent() (Impl, error) {
- return cache, nil
+func (cache *v1Cache) transformTo(v Version) (Impl, error) {
+ switch v {
+ case v1Version:
+ return cache, nil
+ default:
+ return nil, fmt.Errorf("Transformation not supported")
+ }
}
func (cache *v1Cache) getItem(id feedId) *cachedFeed {