code: func goBytes(src uintptr, len uint32) []byte {
  	if src == uintptr(0) {
  		return []byte{}
  	}
  	rv := make([]byte, len)
  	copy(rv, *(*[]byte)(unsafe.Pointer(&reflect.SliceHeader{
  		Data: src,
  		Len:  int(len),
  		Cap:  int(len),
  	})))
  	return rv
  }
docs: // goBytes copies the given C byte array to a Go byte array (see `C.GoBytes`).
  // This function avoids having cgo as dependency.