Files
hiscaler-gox/fmtx/fmt.go

69 lines
1.1 KiB
Go
Raw Normal View History

2025-04-08 19:16:39 +02:00
package fmtx
import (
"encoding/json"
"fmt"
"strconv"
"strings"
)
func toJson(prefix string, data interface{}) string {
s := ""
if b, err := json.MarshalIndent(data, "", " "); err == nil {
s = string(b)
} else {
s = fmt.Sprintf("%#v", data)
}
if prefix != "" {
s = fmt.Sprintf(`%s
%s`, prefix, s)
}
return s
}
func SprettyPrint(a ...interface{}) string {
n := len(a)
if n == 0 {
return ""
}
values := make([]string, n)
for _, v := range a {
values = append(values, toJson("", v))
}
return strings.Join(values, "\n")
}
func PrettyPrint(prefix string, a ...interface{}) {
onlyOne := len(a) == 1
for k, v := range a {
p := prefix
if p == "" {
if !onlyOne {
p = strconv.Itoa(k + 1)
}
} else {
if !onlyOne {
p = fmt.Sprintf("%s %d", prefix, k+1)
}
}
fmt.Print(toJson(prefix, v))
}
}
func PrettyPrintln(prefix string, a ...interface{}) {
onlyOne := len(a) == 1
for k, v := range a {
p := prefix
if p == "" {
if !onlyOne {
p = strconv.Itoa(k + 1)
}
} else {
if !onlyOne {
p = fmt.Sprintf("%s %d", prefix, k+1)
}
}
fmt.Println(toJson(p, v))
}
}