internal/pkg: expose underlying reader
All checks were successful
Test / Create distribution (push) Successful in 49s
Test / Sandbox (push) Successful in 2m42s
Test / ShareFS (push) Successful in 3m57s
Test / Hpkg (push) Successful in 4m37s
Test / Sandbox (race detector) (push) Successful in 5m0s
Test / Hakurei (race detector) (push) Successful in 5m54s
Test / Hakurei (push) Successful in 2m41s
Test / Flake checks (push) Successful in 1m41s

This will be fully implemented in httpArtifact in a future commit.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-01-25 14:14:19 +09:00
parent 20790af71e
commit 334578fdde
8 changed files with 157 additions and 93 deletions

View File

@@ -47,10 +47,10 @@ type overrideIdent struct {
func (a overrideIdent) ID() pkg.ID { return a.id }
// overrideIdentFile overrides the ID method of [File].
// overrideIdentFile overrides the ID method of [FileArtifact].
type overrideIdentFile struct {
id pkg.ID
pkg.File
pkg.FileArtifact
}
func (a overrideIdentFile) ID() pkg.ID { return a.id }
@@ -61,10 +61,10 @@ type knownIdentArtifact interface {
pkg.TrivialArtifact
}
// A knownIdentFile implements [pkg.KnownIdent] and [File]
// A knownIdentFile implements [pkg.KnownIdent] and [FileArtifact]
type knownIdentFile interface {
pkg.KnownIdent
pkg.File
pkg.FileArtifact
}
// overrideChecksum overrides the Checksum method of [Artifact].
@@ -75,7 +75,7 @@ type overrideChecksum struct {
func (a overrideChecksum) Checksum() pkg.Checksum { return a.checksum }
// overrideChecksumFile overrides the Checksum method of [File].
// overrideChecksumFile overrides the Checksum method of [FileArtifact].
type overrideChecksumFile struct {
checksum pkg.Checksum
knownIdentFile
@@ -111,7 +111,7 @@ func (a *stubArtifactF) Params(ctx *pkg.IContext) { ctx.GetHash().Write(a.pa
func (a *stubArtifactF) Dependencies() []pkg.Artifact { return a.deps }
func (a *stubArtifactF) Cure(f *pkg.FContext) error { return a.cure(f) }
// A stubFile implements [File] with hardcoded behaviour.
// A stubFile implements [FileArtifact] with hardcoded behaviour.
type stubFile struct {
data []byte
err error
@@ -119,7 +119,9 @@ type stubFile struct {
stubArtifact
}
func (a *stubFile) Cure(context.Context) ([]byte, error) { return a.data, a.err }
func (a *stubFile) Cure(context.Context) (io.ReadCloser, error) {
return io.NopCloser(bytes.NewReader(a.data)), a.err
}
// newStubFile returns an implementation of [pkg.File] with hardcoded behaviour.
func newStubFile(
@@ -128,7 +130,7 @@ func newStubFile(
sum *pkg.Checksum,
data []byte,
err error,
) pkg.File {
) pkg.FileArtifact {
f := overrideIdentFile{id, &stubFile{data, err, stubArtifact{
kind,
nil,