Tao Wen 8 роки тому
батько
коміт
08dbc98040
1 змінених файлів з 5 додано та 0 видалено
  1. 5 0
      feature_reflect.go

+ 5 - 0
feature_reflect.go

@@ -267,6 +267,11 @@ func createDecoderOfType(cfg *frozenConfig, typ reflect.Type) (ValDecoder, error
 		}
 		return decoder, nil
 	}
+	if reflect.PtrTo(typ).ConvertibleTo(unmarshalerType) {
+		templateInterface := reflect.New(typ).Interface()
+		var decoder ValDecoder = &unmarshalerDecoder{extractInterface(templateInterface)}
+		return decoder, nil
+	}
 	if typ.ConvertibleTo(anyType) {
 		return &anyCodec{}, nil
 	}