summaryrefslogtreecommitdiff
path: root/internal/table/table.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-02-05 01:02:17 +0200
committerPaul Buetow <paul@buetow.org>2025-02-05 01:02:17 +0200
commit24778551d8e5b0b47a06494dd28a66a71dfb47f0 (patch)
tree6000d14601d57f2f34840793f1798c8baefc59ca /internal/table/table.go
parent07d9f1840494924dd6ca713493dd3d630e9ad721 (diff)
use of generic ascii table package
Diffstat (limited to 'internal/table/table.go')
-rw-r--r--internal/table/table.go12
1 files changed, 10 insertions, 2 deletions
diff --git a/internal/table/table.go b/internal/table/table.go
index 040f50d..7ebeb1b 100644
--- a/internal/table/table.go
+++ b/internal/table/table.go
@@ -3,6 +3,8 @@ package table
import (
"fmt"
"strconv"
+
+ "github.com/fatih/color"
)
type row []string
@@ -10,15 +12,16 @@ type row []string
type Table struct {
headers []string
rows []row
- lengths []int // Max length of each col
+ lengths []int // Max length of each col
+ sprintf func(format string, args ...any) string // For colored output
err error
}
func New(args ...any) *Table {
-
t := Table{
headers: make([]string, 0, len(args)),
lengths: make([]int, 0, len(args)),
+ sprintf: fmt.Sprintf,
}
for _, arg := range args {
@@ -30,6 +33,11 @@ func New(args ...any) *Table {
return &t
}
+func (t *Table) WithColor(col *color.Color) *Table {
+ t.sprintf = col.Sprintf
+ return t
+}
+
func (t *Table) Add(args ...any) *Table {
if len(args) != len(t.headers) {
t.err = fmt.Errorf("Table row (%v) not same length as table headers (%v)", args, t.headers)