code: func (c *Converter) RegisterInputDefaults(in interface{}, fn FieldMappingFunc, defaultFlags FieldMatchingFlags) error {
  	fv := reflect.ValueOf(in)
  	ft := fv.Type()
  	if ft.Kind() != reflect.Ptr {
  		return fmt.Errorf("expected pointer 'in' argument, got: %v", ft)
  	}
  	c.inputFieldMappingFuncs[ft] = fn
  	c.inputDefaultFlags[ft] = defaultFlags
  	return nil
  }
docs: // RegisterInputDefaults registers a field name mapping function, used when converting
  // from maps to structs. Inputs to the conversion methods are checked for this type and a mapping
  // applied automatically if the input matches in. A set of default flags for the input conversion
  // may also be provided, which will be used when no explicit flags are requested.