| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | package oiimport (	"fmt"	"io"	"strings")type InvalidOffset interface {	error	InvalidOffset() (offset int64, whence int)}func errInvalidOffset(offset int64, whence int, msg string) error {	var e InvalidOffset = &internalInvalidOffset{		offset: offset,		whence: whence,		msg:    msg,	}	return e}func errInvalidOffsetf(offset int64, whence int, format string, a ...interface{}) error {	msg := fmt.Sprintf(format, a...)	return errInvalidOffset(offset, whence, msg)}type internalInvalidOffset struct {	offset int64	whence int	msg    string}func (receiver internalInvalidOffset) Error() string {	var builder strings.Builder	fmt.Fprintf(&builder, "oi: Invalid Offset: offset=%d whence=%d", receiver.offset, receiver.whence)	switch receiver.whence {	case io.SeekStart:		builder.WriteString(" (Seek Start)")	case io.SeekCurrent:		builder.WriteString(" (Seek Current)")	case io.SeekEnd:		builder.WriteString(" (Seek End)")	}	if "" != receiver.msg {		builder.WriteRune(' ')		builder.WriteString(receiver.msg)	}	return builder.String()}func (receiver internalInvalidOffset) InvalidOffset() (offset int64, whence int) {	return receiver.offset, receiver.whence}
 |