diff options
| author | Paul Buetow <paul@buetow.org> | 2025-02-05 01:02:17 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-02-05 01:02:17 +0200 |
| commit | 24778551d8e5b0b47a06494dd28a66a71dfb47f0 (patch) | |
| tree | 6000d14601d57f2f34840793f1798c8baefc59ca /internal/table/table.go | |
| parent | 07d9f1840494924dd6ca713493dd3d630e9ad721 (diff) | |
use of generic ascii table package
Diffstat (limited to 'internal/table/table.go')
| -rw-r--r-- | internal/table/table.go | 12 |
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) |
