ioutil.go 453 B

123456789101112131415161718192021222324252627282930
  1. package missinggo
  2. import "io"
  3. type StatWriter struct {
  4. Written int64
  5. w io.Writer
  6. }
  7. func (me *StatWriter) Write(b []byte) (n int, err error) {
  8. n, err = me.w.Write(b)
  9. me.Written += int64(n)
  10. return
  11. }
  12. func NewStatWriter(w io.Writer) *StatWriter {
  13. return &StatWriter{w: w}
  14. }
  15. var ZeroReader zeroReader
  16. type zeroReader struct{}
  17. func (me zeroReader) Read(b []byte) (n int, err error) {
  18. for i := range b {
  19. b[i] = 0
  20. }
  21. n = len(b)
  22. return
  23. }