aboutsummaryrefslogtreecommitdiff
path: root/hotline/read_helper.go
diff options
context:
space:
mode:
authorJeff Halter <868228+jhalter@users.noreply.github.com>2026-03-15 20:48:45 -0700
committerJeff Halter <868228+jhalter@users.noreply.github.com>2026-03-15 20:48:45 -0700
commit92f4b7af1073b6cdd0786ce2090d6e446e0903ad (patch)
tree4cfb332a36aa093d6bb4238967f1b0728fbb498f /hotline/read_helper.go
parentf78ab940a8c09702be3e0ba310ac56e02fa76701 (diff)
Extract shared readFrom helper to deduplicate io.Reader boilerplate
13 types implemented identical offset-based io.Reader patterns with 5-7 lines of copy-and-offset-tracking code each. Extract a shared readFrom(p, offset, data) helper and reduce each Read() method to a one-liner delegating to it.
Diffstat (limited to 'hotline/read_helper.go')
-rw-r--r--hotline/read_helper.go15
1 files changed, 15 insertions, 0 deletions
diff --git a/hotline/read_helper.go b/hotline/read_helper.go
new file mode 100644
index 0000000..3154a74
--- /dev/null
+++ b/hotline/read_helper.go
@@ -0,0 +1,15 @@
+package hotline
+
+import "io"
+
+// readFrom is a shared helper for types that implement io.Reader via an
+// offset-based copy from a serialized byte slice. It copies bytes from data
+// starting at *offset into p, advances *offset, and returns io.EOF when done.
+func readFrom(p []byte, offset *int, data []byte) (int, error) {
+ if *offset >= len(data) {
+ return 0, io.EOF
+ }
+ n := copy(p, data[*offset:])
+ *offset += n
+ return n, nil
+}