fix: исправление багов, комментарии и документация

- Исправлена двойная обработка ITableRow через reflection
- Исправлен выход за границы изображения при отрисовке последнего разделителя
- Добавлена защита от пустых данных (header, blocks)
- Добавлена compile-time проверка интерфейса ITableRow
- Переименован tablle_block_style.go → table_block_style.go
- Добавлены комментарии на русском ко всем функциям и типам
- Написана документация README.md с примерами использования
- Добавлен CLAUDE.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-01 20:30:29 +03:00
parent a4c5fc94b7
commit b8e9f20ec3
8 changed files with 347 additions and 89 deletions

24
table_block_style.go Normal file
View File

@@ -0,0 +1,24 @@
package image_table
import "image/color"
// Проверка реализации интерфейса на этапе компиляции
var _ ITableRow = (*TableBlockStyle)(nil)
// TableBlockStyle — строка таблицы с пользовательским цветом фона.
// Реализует интерфейс ITableRow.
// Важно: передавать в rows как указатель (*TableBlockStyle), иначе интерфейс не будет распознан.
type TableBlockStyle struct {
Cells []any // ячейки строки
BackgroundColor color.RGBA // цвет фона строки
}
// GetCells возвращает ячейки строки
func (s *TableBlockStyle) GetCells() []any {
return s.Cells
}
// GetBackgroundColor возвращает цвет фона строки
func (s *TableBlockStyle) GetBackgroundColor() color.RGBA {
return s.BackgroundColor
}