about summary refs log tree commit diff
path: root/tvix/nar-bridge-go/pkg/importer/counting_writer.go
diff options
context:
space:
mode:
Diffstat (limited to 'tvix/nar-bridge-go/pkg/importer/counting_writer.go')
-rw-r--r--tvix/nar-bridge-go/pkg/importer/counting_writer.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/tvix/nar-bridge-go/pkg/importer/counting_writer.go b/tvix/nar-bridge-go/pkg/importer/counting_writer.go
new file mode 100644
index 000000000000..d003a4b11bfd
--- /dev/null
+++ b/tvix/nar-bridge-go/pkg/importer/counting_writer.go
@@ -0,0 +1,21 @@
+package importer
+
+import (
+	"io"
+)
+
+// CountingWriter implements io.Writer.
+var _ io.Writer = &CountingWriter{}
+
+type CountingWriter struct {
+	bytesWritten uint64
+}
+
+func (cw *CountingWriter) Write(p []byte) (n int, err error) {
+	cw.bytesWritten += uint64(len(p))
+	return len(p), nil
+}
+
+func (cw *CountingWriter) BytesWritten() uint64 {
+	return cw.bytesWritten
+}