69 lines
1.1 KiB
Go
69 lines
1.1 KiB
Go
|
|
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))
|
||
|
|
}
|
||
|
|
}
|