func decodeNestedValue()

in azkustodata/query/v2/fast_json.go [259:286]


func decodeNestedValue(decoder *json.Decoder, buffer []byte) (json.Token, error) {
	nest := 1
	initialOffset := decoder.InputOffset() - 1
	for {
		for decoder.More() {
			t, err := decoder.Token()
			if err != nil {
				return nil, err
			}
			if t == json.Delim('[') || t == json.Delim('{') {
				nest++
			}
		}
		t, err := decoder.Token()
		if err != nil {
			return nil, err
		}
		if t == json.Delim(']') || t == json.Delim('}') {
			nest--
		}
		if nest == 0 {
			break
		}
	}
	finalOffset := decoder.InputOffset()

	return json.Token(buffer[initialOffset:finalOffset]), nil
}