diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-05-17 13:07:12 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-05-17 15:56:53 +0900 |
| commit | 30eb0d6a613ad268f6805ccbcdcabf158e7f526f (patch) | |
| tree | 07e55baa52748fd139e183017eeb43f5f64cee59 /cmd/mbf/internal/pkgserver/index.go | |
| parent | c2ff9c9fa55ea569a5e70ee90d2eb0b2ee2a0540 (diff) | |
internal/rosa: key metadata by string
For upcoming azalea integration. The API is quite ugly right now to ease migration.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'cmd/mbf/internal/pkgserver/index.go')
| -rw-r--r-- | cmd/mbf/internal/pkgserver/index.go | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/cmd/mbf/internal/pkgserver/index.go b/cmd/mbf/internal/pkgserver/index.go index 911183da..5711f810 100644 --- a/cmd/mbf/internal/pkgserver/index.go +++ b/cmd/mbf/internal/pkgserver/index.go @@ -23,7 +23,7 @@ const ( // packageIndex refers to metadata by name and various sort orders. type packageIndex struct { - sorts [sortOrderEnd + 1][rosa.PresetUnexportedStart]*metadata + sorts [sortOrderEnd + 1][]*metadata names map[string]*metadata search searchCache // Taken from [rosa.Report] if available. @@ -32,8 +32,8 @@ type packageIndex struct { // metadata holds [rosa.Metadata] extended with additional information. type metadata struct { - p rosa.PArtifact - *rosa.Metadata + handle rosa.ArtifactH + *rosa.Artifact // Populated via [rosa.Toolchain.Version], [rosa.Unversioned] is equivalent // to the zero value. Otherwise, the zero value is invalid. @@ -56,15 +56,17 @@ func (index *packageIndex) populate(report *rosa.Report) (err error) { index.handleAccess = report.HandleAccess } - var work [rosa.PresetUnexportedStart]*metadata + handles := rosa.Native().Collect() + work := make([]*metadata, len(handles)) index.names = make(map[string]*metadata) ir := pkg.NewIR() - for p := range rosa.PresetUnexportedStart { + for i, handle := range handles { + a, version := rosa.Native().Load(rosa.Std, handle) m := metadata{ - p: p, + handle: handle, - Metadata: rosa.GetMetadata(p), - Version: rosa.Std.Version(p), + Artifact: rosa.Native().MustGet(handle), + Version: version, } if m.Version == "" { return errors.New("invalid version from " + m.Name) @@ -74,13 +76,13 @@ func (index *packageIndex) populate(report *rosa.Report) (err error) { } if report != nil { - id := ir.Ident(rosa.Std.Load(p)) + id := ir.Ident(a) m.ids = pkg.Encode(id.Value()) m.status, m.Size = report.ArtifactOf(id) m.HasReport = m.Size >= 0 } - work[p] = &m + work[i] = &m index.names[m.Name] = &m } |
