Home / Function/ setWithProperType() — gin Function Reference

setWithProperType() — gin Function Reference

Architecture documentation for the setWithProperType() function in form_mapping.go from the gin codebase.

Function go DataBinding Validators calls 8 called by 2

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

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