gomodproxy/pkg/store/store.go
Serge A. Zaitsev 1411b19ad2 in-memory lru cache of limited capacity
fix memLimit flag usage

use megabytes as a unit for memory store capacity

fix incorrect item rearrangement in lru cache

use latest 1.x Go on trais
2018-09-25 13:29:23 +02:00

32 lines
730 B
Go

package store
import (
"context"
"time"
"github.com/sixt/gomodproxy/pkg/vcs"
)
type logger = func(...interface{})
// Store is an interface for a typical cache. It allows to put a snapshot and
// to get snapshot of the specific version.
type Store interface {
Put(ctx context.Context, snapshot Snapshot) error
Get(ctx context.Context, module string, version vcs.Version) (Snapshot, error)
Close() error
}
// Snapshot is a module source code of the speciic version.
type Snapshot struct {
Module string
Version vcs.Version
Timestamp time.Time
Data []byte
}
// Key returns a snapshot key string that can be used in cache stores.
func (s Snapshot) Key() string {
return s.Module + "@" + string(s.Version)
}