src/server/pkg/tabwriter/tabwriter.go
func NewWriter(w io.Writer, header string) *Writer {
	if header[len(header)-1] != '\n' {
		panic("header must end in a new line")
	}
	tabwriter := ansiterm.NewTabWriter(w, 0, 1, 1, ' ', 0)
	tabwriter.Write([]byte(header))
	return &Writer{
		w:      tabwriter,
		lines:  1, // 1 because we just printed the header
		header: []byte(header),
	}
}
func NewWriter(w io.Writer, header string) *Writer {
	if header[len(header)-1] != '\n' {
		panic("header must end in a new line")
	}
	tabwriter := ansiterm.NewTabWriter(w, 0, 1, 1, ' ', 0)
	tabwriter.Write([]byte(header))
	return &Writer{
		w:      tabwriter,
		lines:  1, // 1 because we just printed the header
		header: []byte(header),
	}
}
func NewWriter ( w io . Writer , header string ) * Writer { if header [ len ( header ) - 1 ] != '\n' { panic ( " " ) } tabwriter := ansiterm . NewTabWriter ( w , 0 , 1 , 1 , ' ' , 0 ) tabwriter . Write ( [ ] byte ( header ) ) return & Writer { w : tabwriter , lines : 1 , // 1 because we just printed the header header : [ ] byte ( header ) , } }
// NewWriter returns a new Writer, it will flush when
// it gets termHeight many lines, including the header line.
// The header line will be reprinted termHeight many lines have been written.
// NewStreamingWriter will panic if it's given a header that doesn't end in \n.
NewWriter returns a new Writer it will flush when it gets termHeight many lines including the header line . The header line will be reprinted termHeight many lines have been written . NewStreamingWriter will panic if it s given a header that doesn t end in \ n .