func consumeMap()

in dax/internal/client/response.go [979:1011]


func consumeMap(reader *cbor.Reader, consumer func(int, *cbor.Reader) error) error {
	hdr, err := reader.PeekHeader()
	if err != nil {
		return err
	}
	len, err := reader.ReadMapLength()
	if err != nil {
		return err
	}
	if hdr == cbor.MapStream {
		len = -1
	}
	for i := 0; len < 0 || i < len; i++ {
		if len < 0 {
			consumed, err := consumeBreak(reader)
			if err != nil {
				return err
			}
			if consumed {
				break
			}
		}

		id, err := reader.ReadInt()
		if err != nil {
			return err
		}
		if err := consumer(id, reader); err != nil {
			return err
		}
	}
	return nil
}