mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-19 01:04:25 +08:00
rename files
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
package _default
|
||||
|
||||
// defaultTransactionDataCSVFileConverter defines the structure of ezbookkeeping default csv file converter
|
||||
type defaultTransactionDataCSVFileConverter struct {
|
||||
defaultTransactionDataPlainTextConverter
|
||||
}
|
||||
|
||||
// Initialize an ezbookkeeping default transaction data csv file converter singleton instance
|
||||
var (
|
||||
DefaultTransactionDataCSVFileConverter = &defaultTransactionDataCSVFileConverter{
|
||||
defaultTransactionDataPlainTextConverter{
|
||||
columnSeparator: ",",
|
||||
},
|
||||
}
|
||||
)
|
||||
+6
-6
@@ -6,8 +6,8 @@ import (
|
||||
"github.com/mayswind/ezbookkeeping/pkg/models"
|
||||
)
|
||||
|
||||
// ezBookKeepingTransactionDataPlainTextConverter defines the structure of ezbookkeeping plain text converter for transaction data
|
||||
type ezBookKeepingTransactionDataPlainTextConverter struct {
|
||||
// defaultTransactionDataPlainTextConverter defines the structure of ezbookkeeping default plain text converter for transaction data
|
||||
type defaultTransactionDataPlainTextConverter struct {
|
||||
columnSeparator string
|
||||
}
|
||||
|
||||
@@ -57,8 +57,8 @@ var ezbookkeepingDataColumns = []datatable.TransactionDataTableColumn{
|
||||
}
|
||||
|
||||
// ToExportedContent returns the exported transaction plain text data
|
||||
func (c *ezBookKeepingTransactionDataPlainTextConverter) ToExportedContent(ctx core.Context, uid int64, transactions []*models.Transaction, accountMap map[int64]*models.Account, categoryMap map[int64]*models.TransactionCategory, tagMap map[int64]*models.TransactionTag, allTagIndexes map[int64][]int64) ([]byte, error) {
|
||||
dataTableBuilder := createNewezbookkeepingTransactionPlainTextDataTableBuilder(
|
||||
func (c *defaultTransactionDataPlainTextConverter) ToExportedContent(ctx core.Context, uid int64, transactions []*models.Transaction, accountMap map[int64]*models.Account, categoryMap map[int64]*models.TransactionCategory, tagMap map[int64]*models.TransactionTag, allTagIndexes map[int64][]int64) ([]byte, error) {
|
||||
dataTableBuilder := createNewDefaultTransactionPlainTextDataTableBuilder(
|
||||
len(transactions),
|
||||
ezbookkeepingDataColumns,
|
||||
ezbookkeepingDataColumnNameMapping,
|
||||
@@ -82,8 +82,8 @@ func (c *ezBookKeepingTransactionDataPlainTextConverter) ToExportedContent(ctx c
|
||||
}
|
||||
|
||||
// ParseImportedData returns the imported data by parsing the transaction plain text data
|
||||
func (c *ezBookKeepingTransactionDataPlainTextConverter) ParseImportedData(ctx core.Context, user *models.User, data []byte, defaultTimezoneOffset int16, accountMap map[string]*models.Account, expenseCategoryMap map[string]*models.TransactionCategory, incomeCategoryMap map[string]*models.TransactionCategory, transferCategoryMap map[string]*models.TransactionCategory, tagMap map[string]*models.TransactionTag) (models.ImportedTransactionSlice, []*models.Account, []*models.TransactionCategory, []*models.TransactionCategory, []*models.TransactionCategory, []*models.TransactionTag, error) {
|
||||
dataTable, err := createNewezbookkeepingPlainTextDataTable(
|
||||
func (c *defaultTransactionDataPlainTextConverter) ParseImportedData(ctx core.Context, user *models.User, data []byte, defaultTimezoneOffset int16, accountMap map[string]*models.Account, expenseCategoryMap map[string]*models.TransactionCategory, incomeCategoryMap map[string]*models.TransactionCategory, transferCategoryMap map[string]*models.TransactionCategory, tagMap map[string]*models.TransactionTag) (models.ImportedTransactionSlice, []*models.Account, []*models.TransactionCategory, []*models.TransactionCategory, []*models.TransactionCategory, []*models.TransactionTag, error) {
|
||||
dataTable, err := createNewDefaultPlainTextDataTable(
|
||||
string(data),
|
||||
c.columnSeparator,
|
||||
ezbookkeepingLineSeparator,
|
||||
+17
-17
@@ -12,7 +12,7 @@ import (
|
||||
)
|
||||
|
||||
func TestEzBookKeepingPlainFileConverterToExportedContent(t *testing.T) {
|
||||
converter := EzBookKeepingTransactionDataCSVFileConverter
|
||||
converter := DefaultTransactionDataCSVFileConverter
|
||||
context := core.NewNullContext()
|
||||
|
||||
transactions := make([]*models.Transaction, 3)
|
||||
@@ -126,7 +126,7 @@ func TestEzBookKeepingPlainFileConverterToExportedContent(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestEzBookKeepingPlainFileConverterParseImportedData_MinimumValidData(t *testing.T) {
|
||||
converter := EzBookKeepingTransactionDataCSVFileConverter
|
||||
converter := DefaultTransactionDataCSVFileConverter
|
||||
context := core.NewNullContext()
|
||||
|
||||
user := &models.User{
|
||||
@@ -197,7 +197,7 @@ func TestEzBookKeepingPlainFileConverterParseImportedData_MinimumValidData(t *te
|
||||
}
|
||||
|
||||
func TestEzBookKeepingPlainFileConverterParseImportedData_ParseInvalidTime(t *testing.T) {
|
||||
converter := EzBookKeepingTransactionDataCSVFileConverter
|
||||
converter := DefaultTransactionDataCSVFileConverter
|
||||
context := core.NewNullContext()
|
||||
|
||||
user := &models.User{
|
||||
@@ -215,7 +215,7 @@ func TestEzBookKeepingPlainFileConverterParseImportedData_ParseInvalidTime(t *te
|
||||
}
|
||||
|
||||
func TestEzBookKeepingPlainFileConverterParseImportedData_ParseInvalidType(t *testing.T) {
|
||||
converter := EzBookKeepingTransactionDataCSVFileConverter
|
||||
converter := DefaultTransactionDataCSVFileConverter
|
||||
context := core.NewNullContext()
|
||||
|
||||
user := &models.User{
|
||||
@@ -229,7 +229,7 @@ func TestEzBookKeepingPlainFileConverterParseImportedData_ParseInvalidType(t *te
|
||||
}
|
||||
|
||||
func TestEzBookKeepingPlainFileConverterParseImportedData_ParseValidTimezone(t *testing.T) {
|
||||
converter := EzBookKeepingTransactionDataCSVFileConverter
|
||||
converter := DefaultTransactionDataCSVFileConverter
|
||||
context := core.NewNullContext()
|
||||
|
||||
user := &models.User{
|
||||
@@ -257,7 +257,7 @@ func TestEzBookKeepingPlainFileConverterParseImportedData_ParseValidTimezone(t *
|
||||
}
|
||||
|
||||
func TestEzBookKeepingPlainFileConverterParseImportedData_ParseInvalidTimezone(t *testing.T) {
|
||||
converter := EzBookKeepingTransactionDataCSVFileConverter
|
||||
converter := DefaultTransactionDataCSVFileConverter
|
||||
context := core.NewNullContext()
|
||||
|
||||
user := &models.User{
|
||||
@@ -271,7 +271,7 @@ func TestEzBookKeepingPlainFileConverterParseImportedData_ParseInvalidTimezone(t
|
||||
}
|
||||
|
||||
func TestEzBookKeepingPlainFileConverterParseImportedData_ParseValidAccountCurrency(t *testing.T) {
|
||||
converter := EzBookKeepingTransactionDataCSVFileConverter
|
||||
converter := DefaultTransactionDataCSVFileConverter
|
||||
context := core.NewNullContext()
|
||||
|
||||
user := &models.User{
|
||||
@@ -298,7 +298,7 @@ func TestEzBookKeepingPlainFileConverterParseImportedData_ParseValidAccountCurre
|
||||
}
|
||||
|
||||
func TestEzBookKeepingPlainFileConverterParseImportedData_ParseInvalidAccountCurrency(t *testing.T) {
|
||||
converter := EzBookKeepingTransactionDataCSVFileConverter
|
||||
converter := DefaultTransactionDataCSVFileConverter
|
||||
context := core.NewNullContext()
|
||||
|
||||
user := &models.User{
|
||||
@@ -318,7 +318,7 @@ func TestEzBookKeepingPlainFileConverterParseImportedData_ParseInvalidAccountCur
|
||||
}
|
||||
|
||||
func TestEzBookKeepingPlainFileConverterParseImportedData_ParseNotSupportedCurrency(t *testing.T) {
|
||||
converter := EzBookKeepingTransactionDataCSVFileConverter
|
||||
converter := DefaultTransactionDataCSVFileConverter
|
||||
context := core.NewNullContext()
|
||||
|
||||
user := &models.User{
|
||||
@@ -336,7 +336,7 @@ func TestEzBookKeepingPlainFileConverterParseImportedData_ParseNotSupportedCurre
|
||||
}
|
||||
|
||||
func TestEzBookKeepingPlainFileConverterParseImportedData_ParseInvalidAmount(t *testing.T) {
|
||||
converter := EzBookKeepingTransactionDataCSVFileConverter
|
||||
converter := DefaultTransactionDataCSVFileConverter
|
||||
context := core.NewNullContext()
|
||||
|
||||
user := &models.User{
|
||||
@@ -354,7 +354,7 @@ func TestEzBookKeepingPlainFileConverterParseImportedData_ParseInvalidAmount(t *
|
||||
}
|
||||
|
||||
func TestEzBookKeepingPlainFileConverterParseImportedData_ParseNoAmount2(t *testing.T) {
|
||||
converter := EzBookKeepingTransactionDataCSVFileConverter
|
||||
converter := DefaultTransactionDataCSVFileConverter
|
||||
context := core.NewNullContext()
|
||||
|
||||
user := &models.User{
|
||||
@@ -378,7 +378,7 @@ func TestEzBookKeepingPlainFileConverterParseImportedData_ParseNoAmount2(t *test
|
||||
}
|
||||
|
||||
func TestEzBookKeepingPlainFileConverterParseImportedData_ParseValidGeographicLocation(t *testing.T) {
|
||||
converter := EzBookKeepingTransactionDataCSVFileConverter
|
||||
converter := DefaultTransactionDataCSVFileConverter
|
||||
context := core.NewNullContext()
|
||||
|
||||
user := &models.User{
|
||||
@@ -396,7 +396,7 @@ func TestEzBookKeepingPlainFileConverterParseImportedData_ParseValidGeographicLo
|
||||
}
|
||||
|
||||
func TestEzBookKeepingPlainFileConverterParseImportedData_ParseInvalidGeographicLocation(t *testing.T) {
|
||||
converter := EzBookKeepingTransactionDataCSVFileConverter
|
||||
converter := DefaultTransactionDataCSVFileConverter
|
||||
context := core.NewNullContext()
|
||||
|
||||
user := &models.User{
|
||||
@@ -421,7 +421,7 @@ func TestEzBookKeepingPlainFileConverterParseImportedData_ParseInvalidGeographic
|
||||
}
|
||||
|
||||
func TestEzBookKeepingPlainFileConverterParseImportedData_ParseTag(t *testing.T) {
|
||||
converter := EzBookKeepingTransactionDataCSVFileConverter
|
||||
converter := DefaultTransactionDataCSVFileConverter
|
||||
context := core.NewNullContext()
|
||||
|
||||
user := &models.User{
|
||||
@@ -450,7 +450,7 @@ func TestEzBookKeepingPlainFileConverterParseImportedData_ParseTag(t *testing.T)
|
||||
}
|
||||
|
||||
func TestEzBookKeepingPlainFileConverterParseImportedData_ParseDescription(t *testing.T) {
|
||||
converter := EzBookKeepingTransactionDataCSVFileConverter
|
||||
converter := DefaultTransactionDataCSVFileConverter
|
||||
context := core.NewNullContext()
|
||||
|
||||
user := &models.User{
|
||||
@@ -467,7 +467,7 @@ func TestEzBookKeepingPlainFileConverterParseImportedData_ParseDescription(t *te
|
||||
}
|
||||
|
||||
func TestEzBookKeepingPlainFileConverterParseImportedData_MissingFileHeader(t *testing.T) {
|
||||
converter := EzBookKeepingTransactionDataCSVFileConverter
|
||||
converter := DefaultTransactionDataCSVFileConverter
|
||||
context := core.NewNullContext()
|
||||
|
||||
user := &models.User{
|
||||
@@ -480,7 +480,7 @@ func TestEzBookKeepingPlainFileConverterParseImportedData_MissingFileHeader(t *t
|
||||
}
|
||||
|
||||
func TestEzBookKeepingPlainFileConverterParseImportedData_MissingRequiredColumn(t *testing.T) {
|
||||
converter := EzBookKeepingTransactionDataCSVFileConverter
|
||||
converter := DefaultTransactionDataCSVFileConverter
|
||||
context := core.NewNullContext()
|
||||
|
||||
user := &models.User{
|
||||
@@ -0,0 +1,15 @@
|
||||
package _default
|
||||
|
||||
// defaultTransactionDataTSVFileConverter defines the structure of ezbookkeeping default tsv file converter
|
||||
type defaultTransactionDataTSVFileConverter struct {
|
||||
defaultTransactionDataPlainTextConverter
|
||||
}
|
||||
|
||||
// Initialize an ezbookkeeping default transaction data tsv file converter singleton instance
|
||||
var (
|
||||
DefaultTransactionDataTSVFileConverter = &defaultTransactionDataTSVFileConverter{
|
||||
defaultTransactionDataPlainTextConverter{
|
||||
columnSeparator: "\t",
|
||||
},
|
||||
}
|
||||
)
|
||||
+27
-27
@@ -8,27 +8,27 @@ import (
|
||||
"github.com/mayswind/ezbookkeeping/pkg/errs"
|
||||
)
|
||||
|
||||
// ezBookKeepingPlainTextDataTable defines the structure of ezbookkeeping plain text data table
|
||||
type ezBookKeepingPlainTextDataTable struct {
|
||||
// defaultPlainTextDataTable defines the structure of ezbookkeeping default plain text data table
|
||||
type defaultPlainTextDataTable struct {
|
||||
columnSeparator string
|
||||
lineSeparator string
|
||||
allLines []string
|
||||
headerLineColumnNames []string
|
||||
}
|
||||
|
||||
// ezBookKeepingPlainTextDataRow defines the structure of ezbookkeeping plain text data row
|
||||
type ezBookKeepingPlainTextDataRow struct {
|
||||
// defaultPlainTextDataRow defines the structure of ezbookkeeping default plain text data row
|
||||
type defaultPlainTextDataRow struct {
|
||||
allItems []string
|
||||
}
|
||||
|
||||
// ezBookKeepingPlainTextDataRowIterator defines the structure of ezbookkeeping plain text data row iterator
|
||||
type ezBookKeepingPlainTextDataRowIterator struct {
|
||||
dataTable *ezBookKeepingPlainTextDataTable
|
||||
// defaultPlainTextDataRowIterator defines the structure of ezbookkeeping default plain text data row iterator
|
||||
type defaultPlainTextDataRowIterator struct {
|
||||
dataTable *defaultPlainTextDataTable
|
||||
currentIndex int
|
||||
}
|
||||
|
||||
// ezBookKeepingTransactionPlainTextDataTableBuilder defines the structure of ezbookkeeping transaction plain text data table builder
|
||||
type ezBookKeepingTransactionPlainTextDataTableBuilder struct {
|
||||
// defaultTransactionPlainTextDataTableBuilder defines the structure of ezbookkeeping default transaction plain text data table builder
|
||||
type defaultTransactionPlainTextDataTableBuilder struct {
|
||||
columnSeparator string
|
||||
lineSeparator string
|
||||
columns []datatable.TransactionDataTableColumn
|
||||
@@ -38,7 +38,7 @@ type ezBookKeepingTransactionPlainTextDataTableBuilder struct {
|
||||
}
|
||||
|
||||
// DataRowCount returns the total count of data row
|
||||
func (t *ezBookKeepingPlainTextDataTable) DataRowCount() int {
|
||||
func (t *defaultPlainTextDataTable) DataRowCount() int {
|
||||
if len(t.allLines) < 1 {
|
||||
return 0
|
||||
}
|
||||
@@ -47,25 +47,25 @@ func (t *ezBookKeepingPlainTextDataTable) DataRowCount() int {
|
||||
}
|
||||
|
||||
// HeaderColumnNames returns the header column name list
|
||||
func (t *ezBookKeepingPlainTextDataTable) HeaderColumnNames() []string {
|
||||
func (t *defaultPlainTextDataTable) HeaderColumnNames() []string {
|
||||
return t.headerLineColumnNames
|
||||
}
|
||||
|
||||
// DataRowIterator returns the iterator of data row
|
||||
func (t *ezBookKeepingPlainTextDataTable) DataRowIterator() datatable.ImportedDataRowIterator {
|
||||
return &ezBookKeepingPlainTextDataRowIterator{
|
||||
func (t *defaultPlainTextDataTable) DataRowIterator() datatable.ImportedDataRowIterator {
|
||||
return &defaultPlainTextDataRowIterator{
|
||||
dataTable: t,
|
||||
currentIndex: 0,
|
||||
}
|
||||
}
|
||||
|
||||
// ColumnCount returns the total count of column in this data row
|
||||
func (r *ezBookKeepingPlainTextDataRow) ColumnCount() int {
|
||||
func (r *defaultPlainTextDataRow) ColumnCount() int {
|
||||
return len(r.allItems)
|
||||
}
|
||||
|
||||
// GetData returns the data in the specified column index
|
||||
func (r *ezBookKeepingPlainTextDataRow) GetData(columnIndex int) string {
|
||||
func (r *defaultPlainTextDataRow) GetData(columnIndex int) string {
|
||||
if columnIndex >= len(r.allItems) {
|
||||
return ""
|
||||
}
|
||||
@@ -74,12 +74,12 @@ func (r *ezBookKeepingPlainTextDataRow) GetData(columnIndex int) string {
|
||||
}
|
||||
|
||||
// HasNext returns whether the iterator does not reach the end
|
||||
func (t *ezBookKeepingPlainTextDataRowIterator) HasNext() bool {
|
||||
func (t *defaultPlainTextDataRowIterator) HasNext() bool {
|
||||
return t.currentIndex+1 < len(t.dataTable.allLines)
|
||||
}
|
||||
|
||||
// Next returns the next imported data row
|
||||
func (t *ezBookKeepingPlainTextDataRowIterator) Next() datatable.ImportedDataRow {
|
||||
func (t *defaultPlainTextDataRowIterator) Next() datatable.ImportedDataRow {
|
||||
if t.currentIndex+1 >= len(t.dataTable.allLines) {
|
||||
return nil
|
||||
}
|
||||
@@ -89,13 +89,13 @@ func (t *ezBookKeepingPlainTextDataRowIterator) Next() datatable.ImportedDataRow
|
||||
rowContent := t.dataTable.allLines[t.currentIndex]
|
||||
rowItems := strings.Split(rowContent, t.dataTable.columnSeparator)
|
||||
|
||||
return &ezBookKeepingPlainTextDataRow{
|
||||
return &defaultPlainTextDataRow{
|
||||
allItems: rowItems,
|
||||
}
|
||||
}
|
||||
|
||||
// AppendTransaction appends the specified transaction to data builder
|
||||
func (b *ezBookKeepingTransactionPlainTextDataTableBuilder) AppendTransaction(data map[datatable.TransactionDataTableColumn]string) {
|
||||
func (b *defaultTransactionPlainTextDataTableBuilder) AppendTransaction(data map[datatable.TransactionDataTableColumn]string) {
|
||||
dataRowParams := make([]any, len(b.columns))
|
||||
|
||||
for i := 0; i < len(b.columns); i++ {
|
||||
@@ -106,7 +106,7 @@ func (b *ezBookKeepingTransactionPlainTextDataTableBuilder) AppendTransaction(da
|
||||
}
|
||||
|
||||
// ReplaceDelimiters returns the text after removing the delimiters
|
||||
func (b *ezBookKeepingTransactionPlainTextDataTableBuilder) ReplaceDelimiters(text string) string {
|
||||
func (b *defaultTransactionPlainTextDataTableBuilder) ReplaceDelimiters(text string) string {
|
||||
text = strings.Replace(text, "\r\n", " ", -1)
|
||||
text = strings.Replace(text, "\r", " ", -1)
|
||||
text = strings.Replace(text, "\n", " ", -1)
|
||||
@@ -117,11 +117,11 @@ func (b *ezBookKeepingTransactionPlainTextDataTableBuilder) ReplaceDelimiters(te
|
||||
}
|
||||
|
||||
// String returns the textual representation of this data
|
||||
func (b *ezBookKeepingTransactionPlainTextDataTableBuilder) String() string {
|
||||
func (b *defaultTransactionPlainTextDataTableBuilder) String() string {
|
||||
return b.builder.String()
|
||||
}
|
||||
|
||||
func (b *ezBookKeepingTransactionPlainTextDataTableBuilder) generateHeaderLine() string {
|
||||
func (b *defaultTransactionPlainTextDataTableBuilder) generateHeaderLine() string {
|
||||
var ret strings.Builder
|
||||
|
||||
for i := 0; i < len(b.columns); i++ {
|
||||
@@ -140,7 +140,7 @@ func (b *ezBookKeepingTransactionPlainTextDataTableBuilder) generateHeaderLine()
|
||||
return ret.String()
|
||||
}
|
||||
|
||||
func (b *ezBookKeepingTransactionPlainTextDataTableBuilder) generateDataLineFormat() string {
|
||||
func (b *defaultTransactionPlainTextDataTableBuilder) generateDataLineFormat() string {
|
||||
var ret strings.Builder
|
||||
|
||||
for i := 0; i < len(b.columns); i++ {
|
||||
@@ -156,7 +156,7 @@ func (b *ezBookKeepingTransactionPlainTextDataTableBuilder) generateDataLineForm
|
||||
return ret.String()
|
||||
}
|
||||
|
||||
func createNewezbookkeepingPlainTextDataTable(content string, columnSeparator string, lineSeparator string) (*ezBookKeepingPlainTextDataTable, error) {
|
||||
func createNewDefaultPlainTextDataTable(content string, columnSeparator string, lineSeparator string) (*defaultPlainTextDataTable, error) {
|
||||
allLines := strings.Split(content, lineSeparator)
|
||||
|
||||
if len(allLines) < 2 {
|
||||
@@ -167,7 +167,7 @@ func createNewezbookkeepingPlainTextDataTable(content string, columnSeparator st
|
||||
headerLine = strings.ReplaceAll(headerLine, "\r", "")
|
||||
headerLineItems := strings.Split(headerLine, columnSeparator)
|
||||
|
||||
return &ezBookKeepingPlainTextDataTable{
|
||||
return &defaultPlainTextDataTable{
|
||||
columnSeparator: columnSeparator,
|
||||
lineSeparator: lineSeparator,
|
||||
allLines: allLines,
|
||||
@@ -175,11 +175,11 @@ func createNewezbookkeepingPlainTextDataTable(content string, columnSeparator st
|
||||
}, nil
|
||||
}
|
||||
|
||||
func createNewezbookkeepingTransactionPlainTextDataTableBuilder(transactionCount int, columns []datatable.TransactionDataTableColumn, dataColumnNameMapping map[datatable.TransactionDataTableColumn]string, columnSeparator string, lineSeparator string) *ezBookKeepingTransactionPlainTextDataTableBuilder {
|
||||
func createNewDefaultTransactionPlainTextDataTableBuilder(transactionCount int, columns []datatable.TransactionDataTableColumn, dataColumnNameMapping map[datatable.TransactionDataTableColumn]string, columnSeparator string, lineSeparator string) *defaultTransactionPlainTextDataTableBuilder {
|
||||
var builder strings.Builder
|
||||
builder.Grow(transactionCount * 100)
|
||||
|
||||
dataTableBuilder := &ezBookKeepingTransactionPlainTextDataTableBuilder{
|
||||
dataTableBuilder := &defaultTransactionPlainTextDataTableBuilder{
|
||||
columnSeparator: columnSeparator,
|
||||
lineSeparator: lineSeparator,
|
||||
columns: columns,
|
||||
@@ -1,15 +0,0 @@
|
||||
package _default
|
||||
|
||||
// ezBookKeepingTransactionDataCSVFileConverter defines the structure of CSV file converter
|
||||
type ezBookKeepingTransactionDataCSVFileConverter struct {
|
||||
ezBookKeepingTransactionDataPlainTextConverter
|
||||
}
|
||||
|
||||
// Initialize an ezbookkeeping transaction data csv file converter singleton instance
|
||||
var (
|
||||
EzBookKeepingTransactionDataCSVFileConverter = &ezBookKeepingTransactionDataCSVFileConverter{
|
||||
ezBookKeepingTransactionDataPlainTextConverter{
|
||||
columnSeparator: ",",
|
||||
},
|
||||
}
|
||||
)
|
||||
@@ -1,15 +0,0 @@
|
||||
package _default
|
||||
|
||||
// ezBookKeepingTransactionDataTSVFileConverter defines the structure of TSV file converter
|
||||
type ezBookKeepingTransactionDataTSVFileConverter struct {
|
||||
ezBookKeepingTransactionDataPlainTextConverter
|
||||
}
|
||||
|
||||
// Initialize an ezbookkeeping transaction data tsv file converter singleton instance
|
||||
var (
|
||||
EzBookKeepingTransactionDataTSVFileConverter = &ezBookKeepingTransactionDataTSVFileConverter{
|
||||
ezBookKeepingTransactionDataPlainTextConverter{
|
||||
columnSeparator: "\t",
|
||||
},
|
||||
}
|
||||
)
|
||||
Reference in New Issue
Block a user