feat: add skiplists for auto_req and auto_prov
This commit is contained in:
		| @@ -123,15 +123,29 @@ func (d *Decoder) DecodeVars(val any) error { | ||||
| 	} | ||||
|  | ||||
| 	rVal := reflect.ValueOf(val).Elem() | ||||
| 	return d.decodeStruct(rVal) | ||||
| } | ||||
|  | ||||
| func (d *Decoder) decodeStruct(rVal reflect.Value) error { | ||||
| 	for i := 0; i < rVal.NumField(); i++ { | ||||
| 		field := rVal.Field(i) | ||||
| 		fieldType := rVal.Type().Field(i) | ||||
|  | ||||
| 		// Пропускаем неэкспортируемые поля | ||||
| 		if !fieldType.IsExported() { | ||||
| 			continue | ||||
| 		} | ||||
|  | ||||
| 		// Обрабатываем встроенные поля рекурсивно | ||||
| 		if fieldType.Anonymous { | ||||
| 			if field.Kind() == reflect.Struct { | ||||
| 				if err := d.decodeStruct(field); err != nil { | ||||
| 					return err | ||||
| 				} | ||||
| 			} | ||||
| 			continue | ||||
| 		} | ||||
|  | ||||
| 		name := fieldType.Name | ||||
| 		tag := fieldType.Tag.Get("sh") | ||||
| 		required := false | ||||
| @@ -160,7 +174,6 @@ func (d *Decoder) DecodeVars(val any) error { | ||||
|  | ||||
| 		field.Set(newVal.Elem()) | ||||
| 	} | ||||
|  | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user