aboutsummaryrefslogtreecommitdiff
path: root/internal/strings.go
diff options
context:
space:
mode:
authorFelix Hanley <felix@userspace.com.au>2019-09-18 02:12:47 +0000
committerFelix Hanley <felix@userspace.com.au>2019-09-18 02:12:47 +0000
commit508d216990565cb9ec19790c05d875e6f3521a5e (patch)
tree3699b79537902d5718db002cb0b3493985b9e23e /internal/strings.go
parentc3d2f9bf897e52249644bd239ee1696ff374ca8f (diff)
downloadlogger-508d216990565cb9ec19790c05d875e6f3521a5e.tar.gz
logger-508d216990565cb9ec19790c05d875e6f3521a5e.tar.bz2
Add time and Stringer to string handling
Diffstat (limited to 'internal/strings.go')
-rw-r--r--internal/strings.go12
1 files changed, 12 insertions, 0 deletions
diff --git a/internal/strings.go b/internal/strings.go
index 9b8b802..8924734 100644
--- a/internal/strings.go
+++ b/internal/strings.go
@@ -3,13 +3,19 @@ package internal
import (
"fmt"
"strconv"
+ "time"
)
// ToString converts interface to string
func ToString(v interface{}) string {
+ if v == nil {
+ return ""
+ }
switch c := v.(type) {
case string:
return c
+ case *string:
+ return *c
case int:
return strconv.FormatInt(int64(c), 10)
case int64:
@@ -36,6 +42,12 @@ func ToString(v interface{}) string {
return strconv.FormatFloat(c, 'g', -1, 64)
case bool:
return strconv.FormatBool(c)
+ case *bool:
+ return strconv.FormatBool(*c)
+ case *time.Time:
+ return fmt.Sprintf("%s", c)
+ case fmt.Stringer:
+ return c.String()
default:
return fmt.Sprintf("%v", c)
}