func mapToStruct()

in operatortrace-go/pkg/client/conditions.go [233:254]


func mapToStruct(structVal reflect.Value, data map[string]interface{}) error {
	for key, value := range data {
		field := structVal.FieldByName(key)
		if field.IsValid() {
			switch field.Kind() {
			case reflect.String:
				field.SetString(value.(string))
			case reflect.Bool:
				field.SetBool(value.(bool))
			case reflect.Int32:
				field.SetInt(int64(value.(int32)))
			case reflect.Int64:
				field.SetInt(value.(int64))
			case reflect.Float64:
				field.SetFloat(value.(float64))
			default:
				field.Set(reflect.ValueOf(value))
			}
		}
	}
	return nil
}