This repository has been archived on 2025-03-16. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
boilerplate/internal/extras/excel/exporter.go

36 lines
644 B
Go

package excel
type ExporterInterface interface {
GetSheetName() string
GetEntity() any
GetProvider() func() ([]any, error)
}
type Exporter[T any] struct {
SheetName string
Entity T
Provider func() ([]*T, error)
}
func (e Exporter[T]) GetSheetName() string {
return e.SheetName
}
func (e Exporter[T]) GetEntity() any {
return e.Entity
}
func (e Exporter[T]) GetProvider() func() ([]any, error) {
return func() ([]any, error) {
entities, err := e.Provider()
if err != nil {
return nil, err
}
result := make([]any, len(entities))
for i, entity := range entities {
result[i] = entity
}
return result, nil
}
}