(b []byte, p unsafe.Pointer, t reflect.Type, pointer bool)
| 885 | } |
| 886 | |
| 887 | func (e encoder) encodeTextMarshaler(b []byte, p unsafe.Pointer, t reflect.Type, pointer bool) ([]byte, error) { |
| 888 | v := reflect.NewAt(t, p) |
| 889 | |
| 890 | if !pointer { |
| 891 | v = v.Elem() |
| 892 | } |
| 893 | |
| 894 | switch v.Kind() { |
| 895 | case reflect.Ptr, reflect.Interface: |
| 896 | if v.IsNil() { |
| 897 | return append(b, `null`...), nil |
| 898 | } |
| 899 | } |
| 900 | |
| 901 | s, err := v.Interface().(encoding.TextMarshaler).MarshalText() |
| 902 | if err != nil { |
| 903 | return b, err |
| 904 | } |
| 905 | |
| 906 | return e.encodeString(b, unsafe.Pointer(&s)) |
| 907 | } |
| 908 | |
| 909 | func appendCompactEscapeHTML(dst []byte, src []byte) []byte { |
| 910 | start := 0 |
no test coverage detected