for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
package decode
import "io"
func decodeMap(reader io.Reader, v interface{}) error {
sz, rSize, err := readSize(reader)
if err != nil {
return err
}
cnt, rCount, err := readSize(reader)
return decodeMapItems(reader, v, sz, rSize+rCount, cnt)
func decodeMapItems(reader io.Reader, v interface{}, size int, wasRead readLen, items int) error {
readItems := 0
readPosition := wasRead
for readItems < items && readPosition < readLen(size) {
key, read, err := readMapKey(reader)
readPosition += read
t, read, err := readType(reader)
val, err := readValue(t, reader)
readPosition += readLen(len(val))
err = addMapItem(key, t, val, v)
readItems++
return nil
func readMapKey(reader io.Reader) (int, readLen, error) {
var bk = make([]byte, 4)
_, err := reader.Read(bk)
return 0, 0, err
return int(Int32(bk)), 4, nil