Files
x/internal/io/io.go
T
2024-09-27 15:55:28 +08:00

44 lines
647 B
Go

package io
import (
"io"
"time"
)
type readWriter struct {
io.Reader
io.Writer
}
func NewReadWriter(r io.Reader, w io.Writer) io.ReadWriter {
return &readWriter{
Reader: r,
Writer: w,
}
}
type readWriteCloser struct {
io.Reader
io.Writer
io.Closer
}
func NewReadWriteCloser(r io.Reader, w io.Writer, c io.Closer) io.ReadWriteCloser {
return &readWriteCloser{
Reader: r,
Writer: w,
Closer: c,
}
}
type setReadDeadline interface {
SetReadDeadline(t time.Time) error
}
func SetReadDeadline(rw io.ReadWriter, t time.Time) error {
if v, _ := rw.(setReadDeadline); v != nil {
return v.SetReadDeadline(t)
}
return nil
}