| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package serial
- import (
- "fmt"
- "strings"
- "v2ray.com/core/common/buf"
- )
- 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) buf.BytesWriter {
- return func(b []byte) int {
- copy(b, []byte(s))
- return len(s)
- }
- }
|