{% import (
	"github.com/VictoriaMetrics/VictoriaMetrics/lib/logstorage"
) %}

{% stripspace %}

// JSONRow creates JSON row from the given fields.
{% func JSONRow(columns []logstorage.BlockColumn, rowIdx int) %}
	{% code
		i := 0
		for i < len(columns) && columns[i].Values[rowIdx] == "" {
			i++
		}
		columns = columns[i:]
	%}
	{% if len(columns) == 0 %}
		{% return %}
	{% endif %}
	{
	{% code	c := &columns[0] %}
	{%q= c.Name %}:{%q= c.Values[rowIdx] %}
	{% code columns = columns[1:] %}
	{% for colIdx := range columns %}
		{% code
			c := &columns[colIdx]
			v := c.Values[rowIdx]
		%}
		{% if v == "" %}
			{% continue %}
		{% endif %}
		,{%q= c.Name %}:{%q= c.Values[rowIdx] %}
	{% endfor %}
	}{% newline %}
{% endfunc %}

// JSONRows prints formatted rows
{% func JSONRows(rows [][]logstorage.Field) %}
	{% if len(rows) == 0 %}
		{% return %}
	{% endif %}
	{% for _, fields := range rows %}
		{% code fields = logstorage.SkipLeadingFieldsWithoutValues(fields) %}
		{% if len(fields) == 0 %}
			{% continue %}
		{% endif %}
		{
		{% if len(fields) > 0 %}
			{% code
				f := fields[0]
				fields = fields[1:]
			%}
			{%q= f.Name %}:{%q= f.Value %}
			{% for _, f := range fields %}
				{% if f.Value == "" %}
					{% continue %}
				{% endif %}
				,{%q= f.Name %}:{%q= f.Value %}
			{% endfor %}
		{% endif %}
		}{% newline %}
	{% endfor %}
{% endfunc %}

{% endstripspace %}