//go:build rclone

package rclone_backend

import "github.com/rclone/rclone/fs/accounting"

type ProgressReader struct {
	acc *accounting.Account
	tr  *accounting.Transfer
	fn  func(progressed int64, percentage float32) error
}

func (pr *ProgressReader) Read(p []byte) (n int, err error) {
	n, err = pr.acc.Read(p)
	if err != nil {
		return
	}
	snap := pr.tr.Snapshot()
	err = pr.fn(snap.Bytes, 100*float32(snap.Bytes)/float32(snap.Size))
	return
}
