diff --git a/internal/zero/reader.go b/internal/zero/reader.go deleted file mode 100644 index 588446d..0000000 --- a/internal/zero/reader.go +++ /dev/null @@ -1,19 +0,0 @@ -package zero - -import "io" - -type reader struct{} - -func (reader) Read(p []byte) (int, error) { - for i := range p { - p[i] = 0 - } - - return len(p), nil -} - -// NewReader returns an io.Reader that behaves like /dev/zero in that when -// read from will always return an unlimited stream of zero bytes. -func NewReader() io.Reader { - return new(reader) -} diff --git a/internal/zero/reader_test.go b/internal/zero/reader_test.go deleted file mode 100644 index 28b6138..0000000 --- a/internal/zero/reader_test.go +++ /dev/null @@ -1,28 +0,0 @@ -package zero_test - -import ( - "bytes" - "io" - "testing" - - "github.com/bodgit/rvz/internal/zero" - "github.com/stretchr/testify/assert" -) - -const limit = 10 - -func TestReader(t *testing.T) { - t.Parallel() - - r := zero.NewReader() - b := new(bytes.Buffer) - - n, err := io.Copy(b, io.LimitReader(r, limit)) - if err != nil { - t.Fatal(err) - } - - assert.Equal(t, limit, int(n)) - assert.Equal(t, limit, b.Len()) - assert.Equal(t, bytes.Repeat([]byte{0x00}, limit), b.Bytes()) -} diff --git a/part.go b/part.go index 6b36ef1..287d830 100644 --- a/part.go +++ b/part.go @@ -8,8 +8,8 @@ import ( "io" "runtime" + "github.com/bodgit/plumbing" "github.com/bodgit/rvz/internal/util" - "github.com/bodgit/rvz/internal/zero" "golang.org/x/sync/errgroup" ) @@ -81,7 +81,7 @@ func (pr *partReader) readGroup(i int) error { var ( rc io.ReadCloser err error - zr = zero.NewReader() + zr = plumbing.DevZero() r io.Reader ) @@ -110,7 +110,7 @@ func (pr *partReader) readGroup(i int) error { _, _ = pr.h0[j].Write(h.Sum(nil)) } - _, _ = io.CopyN(pr.h0[j], zero.NewReader(), h0Padding) + _, _ = io.CopyN(pr.h0[j], plumbing.DevZero(), h0Padding) } return nil @@ -129,7 +129,7 @@ func (pr *partReader) writeHashes() { _, _ = pr.h1[i].Write(h.Sum(nil)) } - _, _ = io.CopyN(pr.h1[i], zero.NewReader(), h1Padding) + _, _ = io.CopyN(pr.h1[i], plumbing.DevZero(), h1Padding) } // Calculate the H2 hashes @@ -141,7 +141,7 @@ func (pr *partReader) writeHashes() { _, _ = pr.h2.Write(h.Sum(nil)) } - _, _ = io.CopyN(pr.h2, zero.NewReader(), h2Padding) + _, _ = io.CopyN(pr.h2, plumbing.DevZero(), h2Padding) } //nolint:gochecknoglobals diff --git a/reader.go b/reader.go index 78199ee..caf1bf7 100644 --- a/reader.go +++ b/reader.go @@ -11,7 +11,6 @@ import ( "github.com/bodgit/plumbing" "github.com/bodgit/rvz/internal/packed" "github.com/bodgit/rvz/internal/util" - "github.com/bodgit/rvz/internal/zero" ) const ( @@ -172,7 +171,7 @@ func (r *reader) groupReader(g int, offset int64, partition bool) (rc io.ReadClo return nil, nil, err } case group.size() == 0: - rc = io.NopCloser(io.LimitReader(zero.NewReader(), r.disc.chunkSize(partition))) + rc = io.NopCloser(io.LimitReader(plumbing.DevZero(), r.disc.chunkSize(partition))) default: rc = io.NopCloser(io.NewSectionReader(r.ra, group.offset(), group.size())) }