setWithProperType() — gin Function Reference
Architecture documentation for the setWithProperType() function in form_mapping.go from the gin codebase.
Entity Profile
Dependency Diagram
graph TD 6153aa3f_ed0b_2237_43a1_5d4f68982dd7["setWithProperType()"] 12913085_e498_18b3_5bda_a23669e608df["setByForm()"] 12913085_e498_18b3_5bda_a23669e608df -->|calls| 6153aa3f_ed0b_2237_43a1_5d4f68982dd7 b4cdd2d0_54e2_6218_cda2_fbabf067d202["setArray()"] b4cdd2d0_54e2_6218_cda2_fbabf067d202 -->|calls| 6153aa3f_ed0b_2237_43a1_5d4f68982dd7 9a0c6acf_21a1_ed4a_350b_8832b3710523["trySetUsingParser()"] 6153aa3f_ed0b_2237_43a1_5d4f68982dd7 -->|calls| 9a0c6acf_21a1_ed4a_350b_8832b3710523 755f0ebb_80c7_2e63_6a74_f8404f6a04ec["trySetCustom()"] 6153aa3f_ed0b_2237_43a1_5d4f68982dd7 -->|calls| 755f0ebb_80c7_2e63_6a74_f8404f6a04ec e8392c00_4449_282c_8bf5_6e3d6c06d512["setIntField()"] 6153aa3f_ed0b_2237_43a1_5d4f68982dd7 -->|calls| e8392c00_4449_282c_8bf5_6e3d6c06d512 9729b3be_f4f0_d5e7_9b2f_f869176bf88d["setTimeDuration()"] 6153aa3f_ed0b_2237_43a1_5d4f68982dd7 -->|calls| 9729b3be_f4f0_d5e7_9b2f_f869176bf88d ca581372_dd65_5227_dc0a_111cbf2ba5d9["setUintField()"] 6153aa3f_ed0b_2237_43a1_5d4f68982dd7 -->|calls| ca581372_dd65_5227_dc0a_111cbf2ba5d9 883a4d25_de7a_7d85_8250_d88c99a3bbc8["setBoolField()"] 6153aa3f_ed0b_2237_43a1_5d4f68982dd7 -->|calls| 883a4d25_de7a_7d85_8250_d88c99a3bbc8 7664f8d7_a686_754e_e0aa_b13b241d5631["setFloatField()"] 6153aa3f_ed0b_2237_43a1_5d4f68982dd7 -->|calls| 7664f8d7_a686_754e_e0aa_b13b241d5631 6c0372d3_bbee_c861_3919_16056a8d9721["setTimeField()"] 6153aa3f_ed0b_2237_43a1_5d4f68982dd7 -->|calls| 6c0372d3_bbee_c861_3919_16056a8d9721 style 6153aa3f_ed0b_2237_43a1_5d4f68982dd7 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
binding/form_mapping.go lines 323–388
func setWithProperType(val string, value reflect.Value, field reflect.StructField, opt setOptions) error {
// this if-check is required for parsing nested types like []MyId, where MyId is [12]byte
if ok, err := trySetUsingParser(val, value, opt.parser); ok {
return err
} else if ok, err = trySetCustom(val, value); ok {
return err
}
// If it is a string type, no spaces are removed, and the user data is not modified here
if value.Kind() != reflect.String {
val = strings.TrimSpace(val)
}
switch value.Kind() {
case reflect.Int:
return setIntField(val, 0, value)
case reflect.Int8:
return setIntField(val, 8, value)
case reflect.Int16:
return setIntField(val, 16, value)
case reflect.Int32:
return setIntField(val, 32, value)
case reflect.Int64:
switch value.Interface().(type) {
case time.Duration:
return setTimeDuration(val, value)
}
return setIntField(val, 64, value)
case reflect.Uint:
return setUintField(val, 0, value)
case reflect.Uint8:
return setUintField(val, 8, value)
case reflect.Uint16:
return setUintField(val, 16, value)
case reflect.Uint32:
return setUintField(val, 32, value)
case reflect.Uint64:
return setUintField(val, 64, value)
case reflect.Bool:
return setBoolField(val, value)
case reflect.Float32:
return setFloatField(val, 32, value)
case reflect.Float64:
return setFloatField(val, 64, value)
case reflect.String:
value.SetString(val)
case reflect.Struct:
switch value.Interface().(type) {
case time.Time:
return setTimeField(val, field, value)
case multipart.FileHeader:
return nil
}
return json.API.Unmarshal(bytesconv.StringToBytes(val), value.Addr().Interface())
case reflect.Map:
return json.API.Unmarshal(bytesconv.StringToBytes(val), value.Addr().Interface())
case reflect.Ptr:
if !value.Elem().IsValid() {
value.Set(reflect.New(value.Type().Elem()))
}
return setWithProperType(val, value.Elem(), field, opt)
default:
return errUnknownType
}
return nil
}
Domain
Subdomains
Calls
Called By
Source
Frequently Asked Questions
What does setWithProperType() do?
setWithProperType() is a function in the gin codebase.
What does setWithProperType() call?
setWithProperType() calls 8 function(s): setBoolField, setFloatField, setIntField, setTimeDuration, setTimeField, setUintField, trySetCustom, trySetUsingParser.
What calls setWithProperType()?
setWithProperType() is called by 2 function(s): setArray, setByForm.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free