func (pt *ProgressReader) Read(p []byte) (int, error) {
	n, err := pt.ReadCloser.Read(p)
	if pt.Tracker != nil {
		pt.Tracker.total += int64(n)
		pt.Tracker.update(n)
	}
	return n, err
}
Read in ProgressReader is the same as io.Read
package ioprogress
import (
	"io"
)
type ProgressReader struct {
	io.ReadCloser
	Tracker *ProgressTracker
}