INNER CODE UNIT · Go

shouldIgnore

jinzhu/copier · copier.go:520

func shouldIgnore(v reflect.Value, bitFlags uint8, ignoreEmpty bool) bool {
	return ignoreEmpty && bitFlags&tagOverride == 0 && v.IsZero()
}

var deepFieldsLock sync.RWMutex
var deepFieldsMap = make(map[reflect.Type][]reflect.StructField)

func deepFields(reflectType reflect.Type) []reflect.StructField {
	deepFieldsLock.RLock()
	cache, ok := deepFieldsMap[reflectType]
	deepFieldsLock.RUnlock()
	if ok {
		return cache
	}
	var res []reflect.StructField
	if reflectType, _ = indirectType(reflectType); reflectType.Kind() == reflect.Struct {
		fields := make([]reflect.StructField, 0, reflectType.NumField())

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…