// This code was generated by CLI, a command line interface
// compiler for C++.
//

namespace cli
{
  // unknown_mode
  //
  inline unknown_mode::
  unknown_mode (value v)
  : v_ (v)
  {
  }

  // exception
  //
  inline std::ostream&
  operator<< (std::ostream& os, const exception& e)
  {
    e.print (os);
    return os;
  }

  // unknown_option
  //
  inline unknown_option::
  unknown_option (const std::string& option)
  : option_ (option)
  {
  }

  inline const std::string& unknown_option::
  option () const
  {
    return option_;
  }

  // unknown_argument
  //
  inline unknown_argument::
  unknown_argument (const std::string& argument)
  : argument_ (argument)
  {
  }

  inline const std::string& unknown_argument::
  argument () const
  {
    return argument_;
  }

  // missing_value
  //
  inline missing_value::
  missing_value (const std::string& option)
  : option_ (option)
  {
  }

  inline const std::string& missing_value::
  option () const
  {
    return option_;
  }

  // invalid_value
  //
  inline invalid_value::
  invalid_value (const std::string& option,
                 const std::string& value)
  : option_ (option),  value_ (value)
  {
  }

  inline const std::string& invalid_value::
  option () const
  {
    return option_;
  }

  inline const std::string& invalid_value::
  value () const
  {
    return value_;
  }

  // file_io_failure
  //
  inline file_io_failure::
  file_io_failure (const std::string& file)
  : file_ (file)
  {
  }

  inline const std::string& file_io_failure::
  file () const
  {
    return file_;
  }

  // unmatched_quote
  //
  inline unmatched_quote::
  unmatched_quote (const std::string& argument)
  : argument_ (argument)
  {
  }

  inline const std::string& unmatched_quote::
  argument () const
  {
    return argument_;
  }

  // argv_scanner
  //
  inline argv_scanner::
  argv_scanner (int& argc, char** argv, bool erase)
  : i_ (1), argc_ (argc), argv_ (argv), erase_ (erase)
  {
  }

  inline argv_scanner::
  argv_scanner (int start, int& argc, char** argv, bool erase)
  : i_ (start), argc_ (argc), argv_ (argv), erase_ (erase)
  {
  }

  inline int argv_scanner::
  end () const
  {
    return i_;
  }

  // argv_file_scanner
  //
  inline argv_file_scanner::
  argv_file_scanner (int& argc,
                     char** argv,
                     const std::string& option,
                     bool erase)
  : argv_scanner (argc, argv, erase),
    option_ (option),
    skip_ (false)
  {
  }

  inline argv_file_scanner::
  argv_file_scanner (int start,
                     int& argc,
                     char** argv,
                     const std::string& option,
                     bool erase)
  : argv_scanner (start, argc, argv, erase),
    option_ (option),
    skip_ (false)
  {
  }
}

namespace cli
{
  // mysql_options
  //

  inline const bool& mysql_options::
  help () const
  {
    return this->help_;
  }

  inline const std::string& mysql_options::
  user () const
  {
    return this->user_;
  }

  inline bool mysql_options::
  user_specified () const
  {
    return this->user_specified_;
  }

  inline const std::string& mysql_options::
  passwd () const
  {
    return this->passwd_;
  }

  inline bool mysql_options::
  passwd_specified () const
  {
    return this->passwd_specified_;
  }

  inline const std::string& mysql_options::
  db_name () const
  {
    return this->db_name_;
  }

  inline bool mysql_options::
  db_name_specified () const
  {
    return this->db_name_specified_;
  }

  inline const std::string& mysql_options::
  host () const
  {
    return this->host_;
  }

  inline bool mysql_options::
  host_specified () const
  {
    return this->host_specified_;
  }

  inline const unsigned int& mysql_options::
  port () const
  {
    return this->port_;
  }

  inline bool mysql_options::
  port_specified () const
  {
    return this->port_specified_;
  }

  inline const std::string& mysql_options::
  socket () const
  {
    return this->socket_;
  }

  inline bool mysql_options::
  socket_specified () const
  {
    return this->socket_specified_;
  }

  inline const std::string& mysql_options::
  options_file () const
  {
    return this->options_file_;
  }

  inline bool mysql_options::
  options_file_specified () const
  {
    return this->options_file_specified_;
  }
}