From 2bfae015eed2267c079ace3beac35de46b91f73d Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Mon, 22 Jul 2024 16:57:20 -0300 Subject: src/lib.go: Add CopyData() --- src/lib.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/lib.go') diff --git a/src/lib.go b/src/lib.go index 391e629..4ce13ff 100644 --- a/src/lib.go +++ b/src/lib.go @@ -44,6 +44,12 @@ type Gauge struct { Dec func(...any) } +type CopyResult struct { + Written int64 + Err error + Label string +} + const MaxInt = int((^uint(0)) >> 1) @@ -364,6 +370,20 @@ func Scrypt( return PBKDF2Key(password, b, 1, keyLen, sha256.New), nil } +func CopyData( + c chan CopyResult, + label string, + from io.Reader, + to io.WriteCloser, +) { + written, err := io.Copy(to, from) + c <- CopyResult { + Written: written, + Err: err, + Label: label, + } +} + // FIXME: finish rewriting // // getV7Time returns the time in milliseconds and nanoseconds / 256. -- cgit v1.2.3