write a quick set of functions to pack and unpack byte arrays

This commit is contained in:
sawka
2022-11-24 15:16:18 -08:00
parent 576d02c98f
commit 301bfaa0be
+34
View File
@@ -0,0 +1,34 @@
package utilfn
import (
"bufio"
"encoding/binary"
"io"
)
func PackValue(w io.Writer, barr []byte) error {
viBuf := make([]byte, binary.MaxVarintLen64)
viLen := binary.PutUvarint(viBuf, uint64(len(barr)))
_, err := w.Write(viBuf[0:viLen])
if err != nil {
return err
}
_, err = w.Write(barr)
if err != nil {
return err
}
return nil
}
func UnpackValue(r *bufio.Reader) ([]byte, error) {
lenVal, err := binary.ReadUvarint(r)
if err != nil {
return nil, err
}
rtnBuf := make([]byte, int(lenVal))
_, err = io.ReadFull(r, rtnBuf)
if err != nil {
return nil, err
}
return rtnBuf, nil
}