gomodproxy/pkg/store/store.go
Serge Zaitsev 7a37ec05c4
Delete modules in case of breaking changes or invalid checksums, compatibility with go mod download (#10)
* add module invalidation via DELETE request
* add go mod download vcs provider
2019-10-07 08:10:02 +02:00

33 lines
798 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)
Del(ctx context.Context, module string, version vcs.Version) 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)
}