Files
Nicholas Wiersma d932d50232 chore: lint code with golangci-lint (#1828)
* feat: add golangci-lint linting

* chore: fix linter issues

* feat: add linting into the workflow

* docs: update lint docs

* fix: cr suggestions

* fix: remove old formatting and vetting scripts

* fix: add docker make target

* fix: action go caching

* fix: depreciated actions checkout version

* fix: cr suggestion

* fix: cr suggestions

---------

Co-authored-by: Manu Gupta <manugupt1@gmail.com>
2023-02-24 20:39:17 -08:00

27 lines
740 B
Go

package index
import (
"context"
"time"
)
// Line represents a module@version line
// with its metadata such as creation time.
type Line struct {
Path, Version string
Timestamp time.Time
}
// Indexer is an interface that can process new module@versions
// and also retrieve 'limit' module@versions that were indexed after 'since'.
type Indexer interface {
// Index stores the module@version into the index backend.
// Implementer must create the Timestamp at the time and set it
// to the time this method is call.
Index(ctx context.Context, mod, ver string) error
// Lines returns the module@version lines given the time and limit
// constraints
Lines(ctx context.Context, since time.Time, limit int) ([]*Line, error)
}