(buf []byte, array []any)
| 814 | } |
| 815 | |
| 816 | func appendBinaryArray(buf []byte, array []any) ([]byte, error) { |
| 817 | docOff := len(buf) |
| 818 | buf = appendUint32(buf, uint32(len(array))) |
| 819 | buf = appendZero(buf, dataSizeOff) |
| 820 | valEntryBegin := len(buf) |
| 821 | buf = appendZero(buf, len(array)*valEntrySize) |
| 822 | for i, val := range array { |
| 823 | var err error |
| 824 | buf, err = appendBinaryValElem(buf, docOff, valEntryBegin+i*valEntrySize, val) |
| 825 | if err != nil { |
| 826 | return nil, errors.Trace(err) |
| 827 | } |
| 828 | } |
| 829 | docSize := len(buf) - docOff |
| 830 | jsonEndian.PutUint32(buf[docOff+dataSizeOff:], uint32(docSize)) |
| 831 | return buf, nil |
| 832 | } |
| 833 | |
| 834 | func appendBinaryValElem(buf []byte, docOff, valEntryOff int, val any) ([]byte, error) { |
| 835 | var typeCode JSONTypeCode |
no test coverage detected