code: func LoadArgs(args string, container interface{}) error {
  	if args == "" {
  		return nil
  	}
  
  	containerValue := reflect.ValueOf(container)
  
  	pairs := strings.Split(args, ";")
  	unknownArgs := []string{}
  	for _, pair := range pairs {
  		kv := strings.Split(pair, "=")
  		if len(kv) != 2 {
  			return fmt.Errorf("ARGS: invalid pair %q", pair)
  		}
  		keyString := kv[0]
  		valueString := kv[1]
  		keyField := GetKeyField(keyString, containerValue)
  		if !keyField.IsValid() {
  			unknownArgs = append(unknownArgs, pair)
  			continue
  		}
  		keyFieldIface := keyField.Addr().Interface()
  		u, ok := keyFieldIface.(encoding.TextUnmarshaler)
  		if !ok {
  			return UnmarshalableArgsError{fmt.Errorf(
  				"ARGS: cannot unmarshal into field '%s' - type '%s' does not implement encoding.TextUnmarshaler",
  				keyString, reflect.TypeOf(keyFieldIface))}
  		}
  		err := u.UnmarshalText([]byte(valueString))
  		if err != nil {
  			return fmt.Errorf("ARGS: error parsing value of pair %q: %v)", pair, err)
  		}
  	}
  
  	isIgnoreUnknown := GetKeyField("IgnoreUnknown", containerValue).Bool()
  	if len(unknownArgs) > 0 && !isIgnoreUnknown {
  		return fmt.Errorf("ARGS: unknown args %q", unknownArgs)
  	}
  	return nil
  }
docs: // LoadArgs parses args from a string in the form "K=V;K2=V2;..."