var marshalerType … var unmarshalerType … var textMarshalerType … var textUnmarshalerType … func createDecoderOfMarshaler(ctx *ctx, typ reflect2.Type) ValDecoder { … } func createEncoderOfMarshaler(ctx *ctx, typ reflect2.Type) ValEncoder { … } type marshalerEncoder … func (encoder *marshalerEncoder) Encode(ptr unsafe.Pointer, stream *Stream) { … } func (encoder *marshalerEncoder) IsEmpty(ptr unsafe.Pointer) bool { … } type directMarshalerEncoder … func (encoder *directMarshalerEncoder) Encode(ptr unsafe.Pointer, stream *Stream) { … } func (encoder *directMarshalerEncoder) IsEmpty(ptr unsafe.Pointer) bool { … } type textMarshalerEncoder … func (encoder *textMarshalerEncoder) Encode(ptr unsafe.Pointer, stream *Stream) { … } func (encoder *textMarshalerEncoder) IsEmpty(ptr unsafe.Pointer) bool { … } type directTextMarshalerEncoder … func (encoder *directTextMarshalerEncoder) Encode(ptr unsafe.Pointer, stream *Stream) { … } func (encoder *directTextMarshalerEncoder) IsEmpty(ptr unsafe.Pointer) bool { … } type unmarshalerDecoder … func (decoder *unmarshalerDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) { … } type textUnmarshalerDecoder … func (decoder *textUnmarshalerDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) { … }