Skip to content
Snippets Groups Projects
Select Git revision
  • feature/v1.3.60
  • develop default protected
  • main protected
  • release/v1.0.7
  • release/v1.0.0
  • feature/v0.9.5
  • release/v0.6.2
  • hotfix/v0.5.7
  • release/v0.5.6
  • release/v0.5.5
  • hotfix/v0.5.4
  • hotfix/v0.5.3
  • hotfix/v0.5.2
  • release/v0.5.1
  • hotfix/v0.5.0
  • hotfix/v0.4.9
  • hotfix/v0.4.8
  • hotfix/v0.4.7
  • release/v0.4.6
  • hotfix/v0.4.5
  • v1.3.55
  • v1.3.52
  • v1.3.50
  • v1.3.45
  • v1.3.42
  • v1.3.41
  • v1.3.40
  • v1.3.38
  • v1.3.37
  • v1.3.36
  • v1.3.35
  • v1.3.34
  • v1.3.33
  • v1.3.32
  • v1.3.31
  • v1.3.30
  • v1.3.29
  • v1.3.28
  • v1.3.27
  • v1.3.26
40 results

StringersToCsvStrings.go

StringersToCsvStrings.go 1.16 KiB
package csvinternal

import (
	"fmt"

	"gitlab.com/evatix-go/core/constants"
)

// StringersToCsvStrings
//
// Formats :
//  - isIncludeQuote && isIncludeSingleQuote = '%v' will be added
//  - isIncludeQuote && !isIncludeSingleQuote = "'%v'" will be added
//  - !isIncludeQuote && !isIncludeSingleQuote = %v will be added
func StringersToCsvStrings(
	isIncludeQuote,
	isIncludeSingleQuote bool,
	stringerFunctions ...fmt.Stringer,
) []string {
	if len(stringerFunctions) == 0 {
		return []string{}
	}

	slice := make([]string, len(stringerFunctions))

	if isIncludeQuote && isIncludeSingleQuote {
		// single quote
		for i, stringerFunc := range stringerFunctions {
			slice[i] = fmt.Sprintf(
				constants.ValueWithSingleQuoteFormat,
				stringerFunc.String())
		}

		return slice
	} else if isIncludeQuote && !isIncludeSingleQuote {
		// double quote
		for i, stringerFunc := range stringerFunctions {
			slice[i] = fmt.Sprintf(
				constants.ValueWithDoubleQuoteFormat,
				stringerFunc.String())
		}

		return slice
	}

	// no quote
	for i, stringerFunc := range stringerFunctions {
		slice[i] = fmt.Sprintf(
			constants.SprintValueFormat,
			stringerFunc.String())
	}

	return slice
}