summaryrefslogtreecommitdiff
path: root/internal/mapr/result_renderer.go
blob: e03ed9ae7f21d3846a52207852d8da87d9323b07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package mapr

import "strings"

// ResultRenderer formats terminal table output for mapreduce results.
type ResultRenderer interface {
	WriteHeaderEntry(sb *strings.Builder, text string, isSortKey, isGroupKey bool)
	WriteHeaderDelimiter(sb *strings.Builder, text string)
	WriteDataEntry(sb *strings.Builder, text string)
	WriteDataDelimiter(sb *strings.Builder, text string)
}

type plainResultRenderer struct{}

// PlainResultRenderer returns a renderer that writes uncolored terminal output.
func PlainResultRenderer() ResultRenderer {
	return plainResultRenderer{}
}

func (plainResultRenderer) WriteHeaderEntry(sb *strings.Builder, text string, _, _ bool) {
	sb.WriteString(text)
}

func (plainResultRenderer) WriteHeaderDelimiter(sb *strings.Builder, text string) {
	sb.WriteString(text)
}

func (plainResultRenderer) WriteDataEntry(sb *strings.Builder, text string) {
	sb.WriteString(text)
}

func (plainResultRenderer) WriteDataDelimiter(sb *strings.Builder, text string) {
	sb.WriteString(text)
}