func decoderOfSlice(ctx *ctx, typ reflect2.Type) ValDecoder { … } func encoderOfSlice(ctx *ctx, typ reflect2.Type) ValEncoder { … } type sliceEncoder … func (encoder *sliceEncoder) Encode(ptr unsafe.Pointer, stream *Stream) { … } func (encoder *sliceEncoder) IsEmpty(ptr unsafe.Pointer) bool { … } type sliceDecoder … func (decoder *sliceDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) { … } func (decoder *sliceDecoder) doDecode(ptr unsafe.Pointer, iter *Iterator) { … }