mirror of
https://github.com/gomods/athens
synced 2026-02-03 11:00:32 +00:00
* 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>
27 lines
740 B
Go
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)
|
|
}
|