@@ -72,24 +72,24 @@ func init() {
7272 textUnmarshalerType = reflect .TypeOf ((* encoding .TextUnmarshaler )(nil )).Elem ()
7373}
7474
75- type optionalDecoder struct {
76- valueType reflect.Type
77- valueDecoder ValDecoder
75+ type OptionalDecoder struct {
76+ ValueType reflect.Type
77+ ValueDecoder ValDecoder
7878}
7979
80- func (decoder * optionalDecoder ) Decode (ptr unsafe.Pointer , iter * Iterator ) {
80+ func (decoder * OptionalDecoder ) Decode (ptr unsafe.Pointer , iter * Iterator ) {
8181 if iter .ReadNil () {
8282 * ((* unsafe .Pointer )(ptr )) = nil
8383 } else {
8484 if * ((* unsafe .Pointer )(ptr )) == nil {
8585 //pointer to null, we have to allocate memory to hold the value
86- value := reflect .New (decoder .valueType )
86+ value := reflect .New (decoder .ValueType )
8787 newPtr := extractInterface (value .Interface ()).word
88- decoder .valueDecoder .Decode (newPtr , iter )
88+ decoder .ValueDecoder .Decode (newPtr , iter )
8989 * ((* uintptr )(ptr )) = uintptr (newPtr )
9090 } else {
9191 //reuse existing instance
92- decoder .valueDecoder .Decode (* ((* unsafe .Pointer )(ptr )), iter )
92+ decoder .ValueDecoder .Decode (* ((* unsafe .Pointer )(ptr )), iter )
9393 }
9494 }
9595}
@@ -113,23 +113,23 @@ func (decoder *deferenceDecoder) Decode(ptr unsafe.Pointer, iter *Iterator) {
113113 }
114114}
115115
116- type optionalEncoder struct {
117- valueEncoder ValEncoder
116+ type OptionalEncoder struct {
117+ ValueEncoder ValEncoder
118118}
119119
120- func (encoder * optionalEncoder ) Encode (ptr unsafe.Pointer , stream * Stream ) {
120+ func (encoder * OptionalEncoder ) Encode (ptr unsafe.Pointer , stream * Stream ) {
121121 if * ((* unsafe .Pointer )(ptr )) == nil {
122122 stream .WriteNil ()
123123 } else {
124- encoder .valueEncoder .Encode (* ((* unsafe .Pointer )(ptr )), stream )
124+ encoder .ValueEncoder .Encode (* ((* unsafe .Pointer )(ptr )), stream )
125125 }
126126}
127127
128- func (encoder * optionalEncoder ) EncodeInterface (val interface {}, stream * Stream ) {
128+ func (encoder * OptionalEncoder ) EncodeInterface (val interface {}, stream * Stream ) {
129129 WriteToStream (val , stream , encoder )
130130}
131131
132- func (encoder * optionalEncoder ) IsEmpty (ptr unsafe.Pointer ) bool {
132+ func (encoder * OptionalEncoder ) IsEmpty (ptr unsafe.Pointer ) bool {
133133 return * ((* unsafe .Pointer )(ptr )) == nil
134134}
135135
@@ -307,7 +307,7 @@ func createDecoderOfType(cfg *frozenConfig, typ reflect.Type) (ValDecoder, error
307307 templateInterface := reflect .New (typ ).Elem ().Interface ()
308308 var decoder ValDecoder = & unmarshalerDecoder {extractInterface (templateInterface )}
309309 if typ .Kind () == reflect .Ptr {
310- decoder = & optionalDecoder {typ .Elem (), decoder }
310+ decoder = & OptionalDecoder {typ .Elem (), decoder }
311311 }
312312 return decoder , nil
313313 }
@@ -320,7 +320,7 @@ func createDecoderOfType(cfg *frozenConfig, typ reflect.Type) (ValDecoder, error
320320 templateInterface := reflect .New (typ ).Elem ().Interface ()
321321 var decoder ValDecoder = & textUnmarshalerDecoder {extractInterface (templateInterface )}
322322 if typ .Kind () == reflect .Ptr {
323- decoder = & optionalDecoder {typ .Elem (), decoder }
323+ decoder = & OptionalDecoder {typ .Elem (), decoder }
324324 }
325325 return decoder , nil
326326 }
@@ -480,7 +480,7 @@ func createEncoderOfType(cfg *frozenConfig, typ reflect.Type) (ValEncoder, error
480480 checkIsEmpty : checkIsEmpty ,
481481 }
482482 if typ .Kind () == reflect .Ptr {
483- encoder = & optionalEncoder {encoder }
483+ encoder = & OptionalEncoder {encoder }
484484 }
485485 return encoder , nil
486486 }
@@ -507,7 +507,7 @@ func createEncoderOfType(cfg *frozenConfig, typ reflect.Type) (ValEncoder, error
507507 checkIsEmpty : checkIsEmpty ,
508508 }
509509 if typ .Kind () == reflect .Ptr {
510- encoder = & optionalEncoder {encoder }
510+ encoder = & OptionalEncoder {encoder }
511511 }
512512 return encoder , nil
513513 }
@@ -567,7 +567,7 @@ func createCheckIsEmpty(typ reflect.Type) (checkIsEmpty, error) {
567567 case reflect .Map :
568568 return & mapEncoder {}, nil
569569 case reflect .Ptr :
570- return & optionalEncoder {}, nil
570+ return & OptionalEncoder {}, nil
571571 default :
572572 return nil , fmt .Errorf ("unsupported type: %v" , typ )
573573 }
@@ -678,7 +678,7 @@ func decoderOfOptional(cfg *frozenConfig, typ reflect.Type) (ValDecoder, error)
678678 if err != nil {
679679 return nil , err
680680 }
681- return & optionalDecoder {elemType , decoder }, nil
681+ return & OptionalDecoder {elemType , decoder }, nil
682682}
683683
684684func encoderOfOptional (cfg * frozenConfig , typ reflect.Type ) (ValEncoder , error ) {
@@ -687,9 +687,9 @@ func encoderOfOptional(cfg *frozenConfig, typ reflect.Type) (ValEncoder, error)
687687 if err != nil {
688688 return nil , err
689689 }
690- encoder := & optionalEncoder {elemEncoder }
690+ encoder := & OptionalEncoder {elemEncoder }
691691 if elemType .Kind () == reflect .Map {
692- encoder = & optionalEncoder {encoder }
692+ encoder = & OptionalEncoder {encoder }
693693 }
694694 return encoder , nil
695695}
0 commit comments