func (r *partsReader) WriteTo(w io.Writer) (n int64, err error) {
if r.index == len(r.R) {
return 0, nil
}
var (
nn int64
rrs = r.R[r.index:]
)
for _, reader := range rrs {
nn, err = io.Copy(w, reader)
n += nn
if err != nil {
if closeErr := reader.Close(); closeErr != nil {
return n, closeErr
}
if err != io.EOF {
return n, err
}
return
}
r.index++
if r.index == len(r.R) {
err = io.EOF
}
}
return
}
if closeErr := reader.Close(); closeErr != nil {
return n, closeErr
}
here should r.index++ also in WriteTo and Read