|
|
- package binary
-
- import (
- "io"
- )
-
- func WriteByteSlice(w io.Writer, bz []byte, n *int64, err *error) {
- WriteUInt32(w, uint32(len(bz)), n, err)
- WriteTo(w, bz, n, err)
- }
-
- func ReadByteSlice(r io.Reader, n *int64, err *error) []byte {
- length := ReadUInt32(r, n, err)
- if *err != nil {
- return nil
- }
- buf := make([]byte, int(length))
- ReadFull(r, buf, n, err)
- return buf
- }
-
- //-----------------------------------------------------------------------------
-
- func WriteByteSlices(w io.Writer, bzz [][]byte, n *int64, err *error) {
- WriteUInt32(w, uint32(len(bzz)), n, err)
- for _, bz := range bzz {
- WriteByteSlice(w, bz, n, err)
- if *err != nil {
- return
- }
- }
- }
-
- func ReadByteSlices(r io.Reader, n *int64, err *error) [][]byte {
- length := ReadUInt32(r, n, err)
- if *err != nil {
- return nil
- }
- bzz := make([][]byte, length)
- for i := uint32(0); i < length; i++ {
- bz := ReadByteSlice(r, n, err)
- if *err != nil {
- return nil
- }
- bzz[i] = bz
- }
- return bzz
- }
|