fork of indigo with slightly nicer lexgen
at main 524 B view raw
1package carstore 2 3import ( 4 "encoding/binary" 5 "io" 6) 7 8// Length-delimited Write 9// Writer stream gets Uvarint length then concatenated data 10func LdWrite(w io.Writer, d ...[]byte) (int64, error) { 11 var sum uint64 12 for _, s := range d { 13 sum += uint64(len(s)) 14 } 15 16 buf := make([]byte, 8) 17 n := binary.PutUvarint(buf, sum) 18 nw, err := w.Write(buf[:n]) 19 if err != nil { 20 return 0, err 21 } 22 23 for _, s := range d { 24 onw, err := w.Write(s) 25 if err != nil { 26 return int64(nw), err 27 } 28 nw += onw 29 } 30 31 return int64(nw), nil 32}