package iter import ( "math" "github.com/grafana/loki/v3/pkg/logproto" ) func ReadBatch(it Iterator, batchSize int) (*logproto.QueryPatternsResponse, error) { var ( series = map[string][]*logproto.PatternSample{} respSize int ) for ; respSize < batchSize && it.Next(); respSize++ { pattern := it.Pattern() sample := it.At() series[pattern] = append(series[pattern], &sample) } result := logproto.QueryPatternsResponse{ Series: make([]*logproto.PatternSeries, 0, len(series)), } for pattern, samples := range series { result.Series = append(result.Series, &logproto.PatternSeries{ Pattern: pattern, Samples: samples, }) } return &result, it.Err() } func ReadAll(it Iterator) (*logproto.QueryPatternsResponse, error) { return ReadBatch(it, math.MaxInt32) }