From 1be402c953a5fead8b620c09275da6d692a125bc Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Thu, 10 Nov 2022 17:23:11 +0100 Subject: [PATCH] transport.NewHTTPReadSeeker: return concrete type, deprecate ReadSeekCloser General convention is to define interfaces on the receiver side, and to return concrete types. Signed-off-by: Sebastiaan van Stijn (cherry picked from commit d71ad5b3a6be14e002d130db9b9703732eee42e8) Signed-off-by: Sebastiaan van Stijn --- registry/client/transport/http_reader.go | 25 ++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/registry/client/transport/http_reader.go b/registry/client/transport/http_reader.go index 9120dbed6..d93957ca3 100644 --- a/registry/client/transport/http_reader.go +++ b/registry/client/transport/http_reader.go @@ -19,24 +19,25 @@ var ( ) // ReadSeekCloser combines io.ReadSeeker with io.Closer. -type ReadSeekCloser interface { - io.ReadSeeker - io.Closer -} +// +// Deprecated: use [io.ReadSeekCloser]. +type ReadSeekCloser = io.ReadSeekCloser // NewHTTPReadSeeker handles reading from an HTTP endpoint using a GET // request. When seeking and starting a read from a non-zero offset // the a "Range" header will be added which sets the offset. +// // TODO(dmcgowan): Move this into a separate utility package -func NewHTTPReadSeeker(client *http.Client, url string, errorHandler func(*http.Response) error) ReadSeekCloser { - return &httpReadSeeker{ +func NewHTTPReadSeeker(client *http.Client, url string, errorHandler func(*http.Response) error) *HTTPReadSeeker { + return &HTTPReadSeeker{ client: client, url: url, errorHandler: errorHandler, } } -type httpReadSeeker struct { +// HTTPReadSeeker implements an [io.ReadSeekCloser]. +type HTTPReadSeeker struct { client *http.Client url string @@ -60,7 +61,7 @@ type httpReadSeeker struct { err error } -func (hrs *httpReadSeeker) Read(p []byte) (n int, err error) { +func (hrs *HTTPReadSeeker) Read(p []byte) (n int, err error) { if hrs.err != nil { return 0, hrs.err } @@ -89,7 +90,7 @@ func (hrs *httpReadSeeker) Read(p []byte) (n int, err error) { return n, err } -func (hrs *httpReadSeeker) Seek(offset int64, whence int) (int64, error) { +func (hrs *HTTPReadSeeker) Seek(offset int64, whence int) (int64, error) { if hrs.err != nil { return 0, hrs.err } @@ -132,7 +133,7 @@ func (hrs *httpReadSeeker) Seek(offset int64, whence int) (int64, error) { return hrs.seekOffset, err } -func (hrs *httpReadSeeker) Close() error { +func (hrs *HTTPReadSeeker) Close() error { if hrs.err != nil { return hrs.err } @@ -149,7 +150,7 @@ func (hrs *httpReadSeeker) Close() error { return nil } -func (hrs *httpReadSeeker) reset() { +func (hrs *HTTPReadSeeker) reset() { if hrs.err != nil { return } @@ -159,7 +160,7 @@ func (hrs *httpReadSeeker) reset() { } } -func (hrs *httpReadSeeker) reader() (io.Reader, error) { +func (hrs *HTTPReadSeeker) reader() (io.Reader, error) { if hrs.err != nil { return nil, hrs.err }