31 lines
453 B
Go
31 lines
453 B
Go
|
package missinggo
|
||
|
|
||
|
import "io"
|
||
|
|
||
|
type StatWriter struct {
|
||
|
Written int64
|
||
|
w io.Writer
|
||
|
}
|
||
|
|
||
|
func (me *StatWriter) Write(b []byte) (n int, err error) {
|
||
|
n, err = me.w.Write(b)
|
||
|
me.Written += int64(n)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
func NewStatWriter(w io.Writer) *StatWriter {
|
||
|
return &StatWriter{w: w}
|
||
|
}
|
||
|
|
||
|
var ZeroReader zeroReader
|
||
|
|
||
|
type zeroReader struct{}
|
||
|
|
||
|
func (me zeroReader) Read(b []byte) (n int, err error) {
|
||
|
for i := range b {
|
||
|
b[i] = 0
|
||
|
}
|
||
|
n = len(b)
|
||
|
return
|
||
|
}
|