From 1e52761665d751865d07261e0fed2afcd67dc736 Mon Sep 17 00:00:00 2001
From: Cornelius Rautenbach <cornel.rautenbach@gmail.com>
Date: Sun, 19 Sep 2021 22:13:25 +0200
Subject: [PATCH] More string utils

---
 string_utils/string_utils.go | 51 ++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/string_utils/string_utils.go b/string_utils/string_utils.go
index 2044eed..ba853cd 100644
--- a/string_utils/string_utils.go
+++ b/string_utils/string_utils.go
@@ -1,6 +1,8 @@
 package string_utils
 
 import (
+	"encoding/json"
+	"fmt"
 	"golang.org/x/text/runes"
 	"golang.org/x/text/transform"
 	"golang.org/x/text/unicode/norm"
@@ -108,4 +110,53 @@ func ConcatP(args ...*string) string {
 		}
 	}
 	return s
+}
+
+
+func ToJSONString(object interface{}) (string, error) {
+	jsonBytes, err := json.Marshal(&object)
+	if err != nil {
+		return "", err
+	}
+	return string(jsonBytes), nil
+}
+
+func Int64ToString(number int64) string {
+	return strconv.FormatInt(number, 10)
+}
+
+func IntToString(number int) string {
+	return strconv.Itoa(number)
+}
+
+func Int64SliceToString(numbers []int64) string {
+	numString := fmt.Sprint(numbers)
+	numString = strings.Join(strings.Split(numString, " "), ",")
+	return numString
+}
+
+func StringToInt64(stringValue string) (int64, error) {
+	number, err := strconv.ParseInt(stringValue, 10, 64)
+	return number, err
+}
+
+func StringToFloat64(stringValue string) (float64, error) {
+	number, err := strconv.ParseFloat(stringValue, 64)
+	if err != nil {
+		return 0, err
+	}
+	return number, nil
+}
+
+func Float64ToString(number float64, precision int) string {
+	return strconv.FormatFloat(number, 'f', precision, 64)
+}
+
+func Float64ToStringWithPrec(number float64, prec int) string {
+	return strconv.FormatFloat(number, 'f', prec, 64)
+}
+
+func ValidateStringAsInt64(stringValue string) error {
+	_, err := StringToInt64(stringValue)
+	return err
 }
\ No newline at end of file
-- 
GitLab