// Code generated by qtc from "query_response.qtpl". DO NOT EDIT.
// See https://github.com/valyala/quicktemplate for details.

//line app/vmselect/prometheus/query_response.qtpl:1
package prometheus

//line app/vmselect/prometheus/query_response.qtpl:1
import (
	"github.com/VictoriaMetrics/VictoriaMetrics/app/vmselect/netstorage"
	"github.com/VictoriaMetrics/VictoriaMetrics/lib/querytracer"
)

// QueryResponse generates response for /api/v1/query.See https://prometheus.io/docs/prometheus/latest/querying/api/#instant-queries

//line app/vmselect/prometheus/query_response.qtpl:9
import (
	qtio422016 "io"

	qt422016 "github.com/valyala/quicktemplate"
)

//line app/vmselect/prometheus/query_response.qtpl:9
var (
	_ = qtio422016.Copy
	_ = qt422016.AcquireByteBuffer
)

//line app/vmselect/prometheus/query_response.qtpl:9
func StreamQueryResponse(qw422016 *qt422016.Writer, rs []netstorage.Result, qt *querytracer.Tracer, qtDone func()) {
//line app/vmselect/prometheus/query_response.qtpl:9
	qw422016.N().S(`{`)
//line app/vmselect/prometheus/query_response.qtpl:11
	seriesCount := len(rs)

//line app/vmselect/prometheus/query_response.qtpl:11
	qw422016.N().S(`"status":"success","data":{"resultType":"vector","result":[`)
//line app/vmselect/prometheus/query_response.qtpl:16
	if len(rs) > 0 {
//line app/vmselect/prometheus/query_response.qtpl:16
		qw422016.N().S(`{"metric":`)
//line app/vmselect/prometheus/query_response.qtpl:18
		streammetricNameObject(qw422016, &rs[0].MetricName)
//line app/vmselect/prometheus/query_response.qtpl:18
		qw422016.N().S(`,"value":`)
//line app/vmselect/prometheus/query_response.qtpl:19
		streammetricRow(qw422016, rs[0].Timestamps[0], rs[0].Values[0])
//line app/vmselect/prometheus/query_response.qtpl:19
		qw422016.N().S(`}`)
//line app/vmselect/prometheus/query_response.qtpl:21
		rs = rs[1:]

//line app/vmselect/prometheus/query_response.qtpl:22
		for i := range rs {
//line app/vmselect/prometheus/query_response.qtpl:23
			r := &rs[i]

//line app/vmselect/prometheus/query_response.qtpl:23
			qw422016.N().S(`,{"metric":`)
//line app/vmselect/prometheus/query_response.qtpl:25
			streammetricNameObject(qw422016, &r.MetricName)
//line app/vmselect/prometheus/query_response.qtpl:25
			qw422016.N().S(`,"value":`)
//line app/vmselect/prometheus/query_response.qtpl:26
			streammetricRow(qw422016, r.Timestamps[0], r.Values[0])
//line app/vmselect/prometheus/query_response.qtpl:26
			qw422016.N().S(`}`)
//line app/vmselect/prometheus/query_response.qtpl:28
		}
//line app/vmselect/prometheus/query_response.qtpl:29
	}
//line app/vmselect/prometheus/query_response.qtpl:29
	qw422016.N().S(`]}`)
//line app/vmselect/prometheus/query_response.qtpl:33
	qt.Printf("generate /api/v1/query response for series=%d", seriesCount)
	qtDone()

//line app/vmselect/prometheus/query_response.qtpl:36
	streamdumpQueryTrace(qw422016, qt)
//line app/vmselect/prometheus/query_response.qtpl:36
	qw422016.N().S(`}`)
//line app/vmselect/prometheus/query_response.qtpl:38
}

//line app/vmselect/prometheus/query_response.qtpl:38
func WriteQueryResponse(qq422016 qtio422016.Writer, rs []netstorage.Result, qt *querytracer.Tracer, qtDone func()) {
//line app/vmselect/prometheus/query_response.qtpl:38
	qw422016 := qt422016.AcquireWriter(qq422016)
//line app/vmselect/prometheus/query_response.qtpl:38
	StreamQueryResponse(qw422016, rs, qt, qtDone)
//line app/vmselect/prometheus/query_response.qtpl:38
	qt422016.ReleaseWriter(qw422016)
//line app/vmselect/prometheus/query_response.qtpl:38
}

//line app/vmselect/prometheus/query_response.qtpl:38
func QueryResponse(rs []netstorage.Result, qt *querytracer.Tracer, qtDone func()) string {
//line app/vmselect/prometheus/query_response.qtpl:38
	qb422016 := qt422016.AcquireByteBuffer()
//line app/vmselect/prometheus/query_response.qtpl:38
	WriteQueryResponse(qb422016, rs, qt, qtDone)
//line app/vmselect/prometheus/query_response.qtpl:38
	qs422016 := string(qb422016.B)
//line app/vmselect/prometheus/query_response.qtpl:38
	qt422016.ReleaseByteBuffer(qb422016)
//line app/vmselect/prometheus/query_response.qtpl:38
	return qs422016
//line app/vmselect/prometheus/query_response.qtpl:38
}