mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 12:18:16 +00:00 
			
		
		
		
	bump(github.com/json-iterator/go): 13f86432b882000a51c6e610c620974462691a97
This commit is contained in:
		
							
								
								
									
										50
									
								
								vendor/github.com/json-iterator/go/feature_reflect_extension.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										50
									
								
								vendor/github.com/json-iterator/go/feature_reflect_extension.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -161,22 +161,31 @@ func RegisterExtension(extension Extension) {
 | 
			
		||||
	extensions = append(extensions, extension)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func getTypeDecoderFromExtension(typ reflect.Type) ValDecoder {
 | 
			
		||||
	decoder := _getTypeDecoderFromExtension(typ)
 | 
			
		||||
func getTypeDecoderFromExtension(cfg *frozenConfig, typ reflect.Type) ValDecoder {
 | 
			
		||||
	decoder := _getTypeDecoderFromExtension(cfg, typ)
 | 
			
		||||
	if decoder != nil {
 | 
			
		||||
		for _, extension := range extensions {
 | 
			
		||||
			decoder = extension.DecorateDecoder(typ, decoder)
 | 
			
		||||
		}
 | 
			
		||||
		for _, extension := range cfg.extensions {
 | 
			
		||||
			decoder = extension.DecorateDecoder(typ, decoder)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return decoder
 | 
			
		||||
}
 | 
			
		||||
func _getTypeDecoderFromExtension(typ reflect.Type) ValDecoder {
 | 
			
		||||
func _getTypeDecoderFromExtension(cfg *frozenConfig, typ reflect.Type) ValDecoder {
 | 
			
		||||
	for _, extension := range extensions {
 | 
			
		||||
		decoder := extension.CreateDecoder(typ)
 | 
			
		||||
		if decoder != nil {
 | 
			
		||||
			return decoder
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	for _, extension := range cfg.extensions {
 | 
			
		||||
		decoder := extension.CreateDecoder(typ)
 | 
			
		||||
		if decoder != nil {
 | 
			
		||||
			return decoder
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	typeName := typ.String()
 | 
			
		||||
	decoder := typeDecoders[typeName]
 | 
			
		||||
	if decoder != nil {
 | 
			
		||||
@@ -185,29 +194,38 @@ func _getTypeDecoderFromExtension(typ reflect.Type) ValDecoder {
 | 
			
		||||
	if typ.Kind() == reflect.Ptr {
 | 
			
		||||
		decoder := typeDecoders[typ.Elem().String()]
 | 
			
		||||
		if decoder != nil {
 | 
			
		||||
			return &optionalDecoder{typ.Elem(), decoder}
 | 
			
		||||
			return &OptionalDecoder{typ.Elem(), decoder}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func getTypeEncoderFromExtension(typ reflect.Type) ValEncoder {
 | 
			
		||||
	encoder := _getTypeEncoderFromExtension(typ)
 | 
			
		||||
func getTypeEncoderFromExtension(cfg *frozenConfig, typ reflect.Type) ValEncoder {
 | 
			
		||||
	encoder := _getTypeEncoderFromExtension(cfg, typ)
 | 
			
		||||
	if encoder != nil {
 | 
			
		||||
		for _, extension := range extensions {
 | 
			
		||||
			encoder = extension.DecorateEncoder(typ, encoder)
 | 
			
		||||
		}
 | 
			
		||||
		for _, extension := range cfg.extensions {
 | 
			
		||||
			encoder = extension.DecorateEncoder(typ, encoder)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return encoder
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _getTypeEncoderFromExtension(typ reflect.Type) ValEncoder {
 | 
			
		||||
func _getTypeEncoderFromExtension(cfg *frozenConfig, typ reflect.Type) ValEncoder {
 | 
			
		||||
	for _, extension := range extensions {
 | 
			
		||||
		encoder := extension.CreateEncoder(typ)
 | 
			
		||||
		if encoder != nil {
 | 
			
		||||
			return encoder
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	for _, extension := range cfg.extensions {
 | 
			
		||||
		encoder := extension.CreateEncoder(typ)
 | 
			
		||||
		if encoder != nil {
 | 
			
		||||
			return encoder
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	typeName := typ.String()
 | 
			
		||||
	encoder := typeEncoders[typeName]
 | 
			
		||||
	if encoder != nil {
 | 
			
		||||
@@ -216,7 +234,7 @@ func _getTypeEncoderFromExtension(typ reflect.Type) ValEncoder {
 | 
			
		||||
	if typ.Kind() == reflect.Ptr {
 | 
			
		||||
		encoder := typeEncoders[typ.Elem().String()]
 | 
			
		||||
		if encoder != nil {
 | 
			
		||||
			return &optionalEncoder{encoder}
 | 
			
		||||
			return &OptionalEncoder{encoder}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
@@ -254,7 +272,7 @@ func describeStruct(cfg *frozenConfig, typ reflect.Type) (*StructDescriptor, err
 | 
			
		||||
				for _, binding := range structDescriptor.Fields {
 | 
			
		||||
					binding.levels = append([]int{i}, binding.levels...)
 | 
			
		||||
					omitempty := binding.Encoder.(*structFieldEncoder).omitempty
 | 
			
		||||
					binding.Encoder = &optionalEncoder{binding.Encoder}
 | 
			
		||||
					binding.Encoder = &OptionalEncoder{binding.Encoder}
 | 
			
		||||
					binding.Encoder = &structFieldEncoder{&field, binding.Encoder, omitempty}
 | 
			
		||||
					binding.Decoder = &deferenceDecoder{field.Type.Elem(), binding.Decoder}
 | 
			
		||||
					binding.Decoder = &structFieldDecoder{&field, binding.Decoder}
 | 
			
		||||
@@ -269,7 +287,7 @@ func describeStruct(cfg *frozenConfig, typ reflect.Type) (*StructDescriptor, err
 | 
			
		||||
		if decoder == nil {
 | 
			
		||||
			var err error
 | 
			
		||||
			decoder, err = decoderOfType(cfg, field.Type)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
			if len(fieldNames) > 0 && err != nil {
 | 
			
		||||
				return nil, err
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
@@ -277,12 +295,13 @@ func describeStruct(cfg *frozenConfig, typ reflect.Type) (*StructDescriptor, err
 | 
			
		||||
		if encoder == nil {
 | 
			
		||||
			var err error
 | 
			
		||||
			encoder, err = encoderOfType(cfg, field.Type)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
			if len(fieldNames) > 0 && err != nil {
 | 
			
		||||
				return nil, err
 | 
			
		||||
			}
 | 
			
		||||
			// map is stored as pointer in the struct
 | 
			
		||||
			if field.Type.Kind() == reflect.Map {
 | 
			
		||||
				encoder = &optionalEncoder{encoder}
 | 
			
		||||
			// map is stored as pointer in the struct,
 | 
			
		||||
			// and treat nil or empty map as empty field
 | 
			
		||||
			if encoder != nil && field.Type.Kind() == reflect.Map {
 | 
			
		||||
				encoder = &optionalMapEncoder{encoder}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		binding := &Binding{
 | 
			
		||||
@@ -323,6 +342,9 @@ func createStructDescriptor(cfg *frozenConfig, typ reflect.Type, bindings []*Bin
 | 
			
		||||
	for _, extension := range extensions {
 | 
			
		||||
		extension.UpdateStructDescriptor(structDescriptor)
 | 
			
		||||
	}
 | 
			
		||||
	for _, extension := range cfg.extensions {
 | 
			
		||||
		extension.UpdateStructDescriptor(structDescriptor)
 | 
			
		||||
	}
 | 
			
		||||
	processTags(structDescriptor, cfg)
 | 
			
		||||
	// merge normal & embedded bindings & sort with original order
 | 
			
		||||
	allBindings := sortableBindings(append(embeddedBindings, structDescriptor.Fields...))
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user