func decoderOfArray(ctx *ctx, typ reflect2.Type) ValDecoder { … } func encoderOfArray(ctx *ctx, typ reflect2.Type) ValEncoder { … } type emptyArrayEncoder … func (encoder emptyArrayEncoder) Encode(ptr unsafe.Pointer, stream *Stream) { … } func (encoder emptyArrayEncoder) IsEmpty(ptr unsafe.Pointer) bool { … } type arrayEncoder … func (encoder *arrayEncoder) Encode(ptr unsafe.Pointer, stream *Stream) { … } func (encoder *arrayEncoder) IsEmpty(ptr unsafe.Pointer) bool { … } type arrayDecoder … func (decoder *arrayDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) { … } func (decoder *arrayDecoder) doDecode(ptr unsafe.Pointer, iter *Iterator) { … }