Ich möchte den Fortschritt in einer io.Pipe
verfolgen. Ich kam mit der folgenden Struktur ProgressPipeReader
bis die io.PipeReader
Wraps, innerhalb ProgressPipeReader.progress
den Fortschritt in Bytes speichern:Wrap io.PipeReader zum Speichern des Fortschritts
type ProgressPipeReader struct {
io.PipeReader
progress int64
}
func (pr *ProgressPipeReader) Read(data []byte) (int, error) {
n, err := pr.PipeReader.Read(data)
if err == nil {
pr.progress += int64(n)
}
return n, err
}
Leider kann ich es nicht zu benutzen scheinen eine io.PipeReader
zu wickeln. Der folgende Ausschnitt
pr, pw := io.Pipe()
pr = &ProgressPipeReader{PipeReader: pr}
ergibt den Fehler
cannot use pr (type *io.PipeReader) as type io.PipeReader in field value
Irgendwelche Hinweise?