11package termhyo
22
3- import "fmt"
4-
53// Renderer defines the interface for different rendering strategies.
64type Renderer interface {
75 AddRow (table * Table , row Row ) error
@@ -39,7 +37,7 @@ type Buffered struct {
3937// AddRow adds a row to the buffered renderer.
4038func (r * Buffered ) AddRow (table * Table , row Row ) error {
4139 if r .rendered {
42- return fmt . Errorf ( "cannot add rows after table is rendered" )
40+ return ErrAddAfterRender
4341 }
4442 // Store row for later rendering
4543 table .rows = append (table .rows , row )
@@ -49,7 +47,7 @@ func (r *Buffered) AddRow(table *Table, row Row) error {
4947// Render renders the buffered content all at once.
5048func (r * Buffered ) Render (table * Table ) error {
5149 if r .rendered {
52- return fmt . Errorf ( "table already rendered" )
50+ return ErrTableAlreadyRendered
5351 }
5452
5553 // Calculate column widths for auto-width columns
@@ -88,7 +86,7 @@ type Streaming struct {
8886// AddRow adds a row to the streaming renderer.
8987func (r * Streaming ) AddRow (table * Table , row Row ) error {
9088 if r .rendered {
91- return fmt . Errorf ( "cannot add rows after table is rendered" )
89+ return ErrAddAfterRender
9290 }
9391
9492 if ! r .headerDone {
@@ -104,7 +102,7 @@ func (r *Streaming) AddRow(table *Table, row Row) error {
104102// Render renders the streaming content, typically just the footer.
105103func (r * Streaming ) Render (table * Table ) error {
106104 if r .rendered {
107- return fmt . Errorf ( "table already rendered" )
105+ return ErrTableAlreadyRendered
108106 }
109107
110108 // For streaming mode, just render footer
0 commit comments