diff --git a/formatter/delimiter_formatter.go b/formatter/delimiter_transformer.go similarity index 55% rename from formatter/delimiter_formatter.go rename to formatter/delimiter_transformer.go index 80eafd6..3fd36a3 100644 --- a/formatter/delimiter_formatter.go +++ b/formatter/delimiter_transformer.go @@ -7,12 +7,12 @@ import ( "github.com/core-go/io/writer" ) -type DelimiterFormatter[T any] struct { +type DelimiterTransformer[T any] struct { Delimiter string formatCols map[int]writer.Delimiter } -func NewDelimiterFormatter[T any](opts ...string) (*DelimiterFormatter[T], error) { +func NewDelimiterTransformer[T any](opts ...string) (*DelimiterTransformer[T], error) { sep := "|" if len(opts) > 0 && len(opts[0]) > 0 { sep = opts[0] @@ -27,9 +27,12 @@ func NewDelimiterFormatter[T any](opts ...string) (*DelimiterFormatter[T], error if err != nil { return nil, err } - return &DelimiterFormatter[T]{formatCols: formatCols, Delimiter: sep}, nil + return &DelimiterTransformer[T]{formatCols: formatCols, Delimiter: sep}, nil +} +func NewDelimiterFormatter[T any](opts ...string) (*DelimiterTransformer[T], error) { + return NewDelimiterTransformer[T](opts...) } -func (f *DelimiterFormatter[T]) Format(ctx context.Context, model *T) string { +func (f *DelimiterTransformer[T]) Transform(ctx context.Context, model *T) string { return writer.ToTextWithDelimiter(model, f.Delimiter, f.formatCols) } diff --git a/formatter/fixedlength_formatter.go b/formatter/fixedlength_formatter.go deleted file mode 100644 index bd28571..0000000 --- a/formatter/fixedlength_formatter.go +++ /dev/null @@ -1,25 +0,0 @@ -package formatter - -import ( - "context" - "github.com/core-go/io/writer" - "reflect" -) - -type FixedLengthFormatter[T any] struct { - formatCols map[int]*writer.FixedLength -} - -func NewFixedLengthFormatter[T any]() (*FixedLengthFormatter[T], error) { - var t T - modelType := reflect.TypeOf(t) - formatCols, err := writer.GetIndexes(modelType, "format") - if err != nil { - return nil, err - } - return &FixedLengthFormatter[T]{formatCols: formatCols}, nil -} - -func (f *FixedLengthFormatter[T]) Format(ctx context.Context, model *T) string { - return writer.ToFixedLength(model, f.formatCols) -} diff --git a/formatter/fixedlength_transformer.go b/formatter/fixedlength_transformer.go new file mode 100644 index 0000000..234551b --- /dev/null +++ b/formatter/fixedlength_transformer.go @@ -0,0 +1,28 @@ +package formatter + +import ( + "context" + "github.com/core-go/io/writer" + "reflect" +) + +type FixedLengthTransformer[T any] struct { + formatCols map[int]*writer.FixedLength +} + +func NewFixedLengthTransformer[T any]() (*FixedLengthTransformer[T], error) { + var t T + modelType := reflect.TypeOf(t) + formatCols, err := writer.GetIndexes(modelType, "format") + if err != nil { + return nil, err + } + return &FixedLengthTransformer[T]{formatCols: formatCols}, nil +} + +func NewFixedLengthFormatter[T any]() (*FixedLengthTransformer[T], error) { + return NewFixedLengthTransformer[T]() +} +func (f *FixedLengthTransformer[T]) Transform(ctx context.Context, model *T) string { + return writer.ToFixedLength(model, f.formatCols) +}