| package internal | |
| import ( | |
| "reflect" | |
| ) | |
| func getFieldValue(req any, fieldName string) any { | |
| v := reflect.ValueOf(req) | |
| if v.Kind() == reflect.Ptr { | |
| v = v.Elem() | |
| } | |
| field := v.FieldByName(fieldName) | |
| if field.IsValid() { | |
| switch field.Kind() { | |
| case reflect.Bool: | |
| return field.Bool() | |
| case reflect.Float32: | |
| return float32(field.Float()) | |
| case reflect.Float64: | |
| return field.Float() | |
| case reflect.Int: | |
| return field.Int() | |
| case reflect.Int32: | |
| return int(field.Int()) | |
| case reflect.Int64: | |
| return field.Int() | |
| case reflect.Uint32: | |
| return field.Uint() | |
| case reflect.Uint64: | |
| return field.Uint() | |
| case reflect.String: | |
| return field.String() | |
| } | |
| } | |
| return nil | |
| } | |