Decouple github.com/jackc/chunkreader
This commit is contained in:
+2
-4
@@ -4,12 +4,11 @@ import (
|
||||
"encoding/binary"
|
||||
"io"
|
||||
|
||||
"github.com/jackc/chunkreader"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
type Backend struct {
|
||||
cr *chunkreader.ChunkReader
|
||||
cr ChunkReader
|
||||
w io.Writer
|
||||
|
||||
// Frontend message flyweights
|
||||
@@ -31,8 +30,7 @@ type Backend struct {
|
||||
partialMsg bool
|
||||
}
|
||||
|
||||
func NewBackend(r io.Reader, w io.Writer) (*Backend, error) {
|
||||
cr := chunkreader.NewChunkReader(r)
|
||||
func NewBackend(cr ChunkReader, w io.Writer) (*Backend, error) {
|
||||
return &Backend{cr: cr, w: w}, nil
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ func TestBackendReceiveInterrupted(t *testing.T) {
|
||||
server := &interruptReader{}
|
||||
server.push([]byte{'Q', 0, 0, 0, 6})
|
||||
|
||||
backend, err := pgproto3.NewBackend(server, nil)
|
||||
backend, err := pgproto3.NewBackend(pgproto3.NewChunkReader(server), nil)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package pgproto3
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
||||
"github.com/jackc/chunkreader"
|
||||
)
|
||||
|
||||
// ChunkReader is an interface to decouple github.com/jackc/chunkreader from this package.
|
||||
type ChunkReader interface {
|
||||
// Next returns buf filled with the next n bytes. If an error occurs, buf will be nil. Next must
|
||||
// not reuse buf. In case of error, Next must preserve partially read data.
|
||||
Next(n int) (buf []byte, err error)
|
||||
}
|
||||
|
||||
func NewChunkReader(r io.Reader) ChunkReader {
|
||||
return chunkreader.NewChunkReader(r)
|
||||
}
|
||||
+2
-4
@@ -4,12 +4,11 @@ import (
|
||||
"encoding/binary"
|
||||
"io"
|
||||
|
||||
"github.com/jackc/chunkreader"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
type Frontend struct {
|
||||
cr *chunkreader.ChunkReader
|
||||
cr ChunkReader
|
||||
w io.Writer
|
||||
|
||||
// Backend message flyweights
|
||||
@@ -42,8 +41,7 @@ type Frontend struct {
|
||||
partialMsg bool
|
||||
}
|
||||
|
||||
func NewFrontend(r io.Reader, w io.Writer) (*Frontend, error) {
|
||||
cr := chunkreader.NewChunkReader(r)
|
||||
func NewFrontend(cr ChunkReader, w io.Writer) (*Frontend, error) {
|
||||
return &Frontend{cr: cr, w: w}, nil
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@ func TestFrontendReceiveInterrupted(t *testing.T) {
|
||||
server := &interruptReader{}
|
||||
server.push([]byte{'Z', 0, 0, 0, 5})
|
||||
|
||||
frontend, err := pgproto3.NewFrontend(server, nil)
|
||||
frontend, err := pgproto3.NewFrontend(pgproto3.NewChunkReader(server), nil)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user