refactor(countrw): move to iout

This commit is contained in:
sentriz
2022-04-12 23:25:54 +01:00
parent d7655cb9d1
commit fd211d706a
6 changed files with 132 additions and 27 deletions

28
iout/tee_closer.go Normal file
View File

@@ -0,0 +1,28 @@
package iout
import "io"
type teeCloser struct {
r io.ReadCloser
w io.WriteCloser
}
func NewTeeCloser(r io.ReadCloser, w io.WriteCloser) io.ReadCloser {
return &teeCloser{r, w}
}
func (t *teeCloser) Read(p []byte) (int, error) {
n, err := t.r.Read(p)
if n > 0 {
if n, err := t.w.Write(p[:n]); err != nil {
return n, err
}
}
return n, err
}
func (t *teeCloser) Close() error {
t.r.Close()
t.w.Close()
return nil
}