fix xnet.Pipe

This commit is contained in:
ginuerzh
2025-08-01 23:00:50 +08:00
parent a5309eee97
commit db21de831a
22 changed files with 122 additions and 51 deletions
+21 -2
View File
@@ -1,10 +1,15 @@
package io
import (
"errors"
"io"
"time"
)
var (
ErrUnsupported = errors.New("unsupported")
)
type CloseRead interface {
CloseRead() error
}
@@ -29,14 +34,14 @@ func (rw *readWriter) CloseRead() error {
if sc, ok := rw.Writer.(CloseRead); ok {
return sc.CloseRead()
}
return nil
return ErrUnsupported
}
func (rw *readWriter) CloseWrite() error {
if sc, ok := rw.Writer.(CloseWrite); ok {
return sc.CloseWrite()
}
return nil
return ErrUnsupported
}
type readWriteCloser struct {
@@ -53,6 +58,20 @@ func NewReadWriteCloser(r io.Reader, w io.Writer, c io.Closer) io.ReadWriteClose
}
}
func (rwc *readWriteCloser) CloseRead() error {
if sc, ok := rwc.Writer.(CloseRead); ok {
return sc.CloseRead()
}
return ErrUnsupported
}
func (rwc *readWriteCloser) CloseWrite() error {
if sc, ok := rwc.Writer.(CloseWrite); ok {
return sc.CloseWrite()
}
return ErrUnsupported
}
type setReadDeadline interface {
SetReadDeadline(t time.Time) error
}