| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package serial
- import (
- "fmt"
- "strings"
- )
- // ToString serialize an abitrary value into string.
- func ToString(v interface{}) string {
- if v == nil {
- return " "
- }
- switch value := v.(type) {
- case string:
- return value
- case *string:
- return *value
- case fmt.Stringer:
- return value.String()
- case error:
- return value.Error()
- case []byte:
- return BytesToHexString(value)
- default:
- return fmt.Sprintf("%+v", value)
- }
- }
- func Concat(v ...interface{}) string {
- values := make([]string, len(v))
- for i, value := range v {
- values[i] = ToString(value)
- }
- return strings.Join(values, "")
- }
- func WriteString(s string) func([]byte) (int, error) {
- return func(b []byte) (int, error) {
- return copy(b, []byte(s)), nil
- }
- }
|