table_row.go 638 B

123456789101112131415161718192021222324252627282930313233343536
  1. package sql_tpl
  2. type TableRow struct {
  3. columnValues []columnValue
  4. err error
  5. }
  6. type columnValue struct {
  7. column string
  8. value string
  9. }
  10. func NewTableRow() *TableRow {
  11. return &TableRow{
  12. columnValues: make([]columnValue, 0),
  13. }
  14. }
  15. func (tableRow *TableRow) Add(column string, value any, opts ...AfterParsedStrValueOption) *TableRow {
  16. if tableRow.err != nil {
  17. return tableRow
  18. }
  19. parsedValue, err := parseValue(value, opts...)
  20. if err != nil {
  21. tableRow.err = err
  22. return tableRow
  23. }
  24. tableRow.columnValues = append(tableRow.columnValues, columnValue{
  25. column: column,
  26. value: parsedValue,
  27. })
  28. return tableRow
  29. }