/* Inline Functions for options.{h,cc}.

   Copyright (C) 1989-1998, 2000, 2002-2004, 2011 Free Software Foundation, Inc.
   Written by Douglas C. Schmidt <schmidt@ics.uci.edu>
   and Bruno Haible <bruno@clisp.org>.

   This file is part of GNU GPERF.

   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */

/* ----------------------------- Class Options ----------------------------- */

/* Tests a given boolean option.  Returns true if set, false otherwise.  */
INLINE bool
Options::operator[] (Option_Type option) const
{
  return _option_word & option;
}

/* Sets a given boolean option.  */
INLINE void
Options::set (Option_Type option)
{
  _option_word |= option;
}

/* Returns the input file name.  */
INLINE const char *
Options::get_input_file_name () const
{
  return _input_file_name;
}

/* Returns the output file name.  */
INLINE const char *
Options::get_output_file_name () const
{
  return _output_file_name;
}

/* Returns the jump value.  */
INLINE int
Options::get_jump () const
{
  return _jump;
}

/* Returns the initial associated character value.  */
INLINE int
Options::get_initial_asso_value () const
{
  return _initial_asso_value;
}

/* Returns the number of iterations for finding finding good asso_values.  */
INLINE int
Options::get_asso_iterations () const
{
  return _asso_iterations;
}

/* Returns the total number of switch statements to generate.  */
INLINE int
Options::get_total_switches () const
{
  return _total_switches;
}

/* Returns the factor by which to multiply the generated table's size.  */
INLINE float
Options::get_size_multiple () const
{
  return _size_multiple;
}

/* Returns the generated function name.  */
INLINE const char *
Options::get_function_name () const
{
  return _function_name;
}

/* Returns the keyword key name.  */
INLINE const char *
Options::get_slot_name () const
{
  return _slot_name;
}

/* Returns the struct initializer suffix.  */
INLINE const char *
Options::get_initializer_suffix () const
{
  return _initializer_suffix;
}

/* Returns the generated class name.  */
INLINE const char *
Options::get_class_name () const
{
  return _class_name;
}

/* Returns the hash function name.  */
INLINE const char *
Options::get_hash_name () const
{
  return _hash_name;
}

/* Returns the hash table array name.  */
INLINE const char *
Options::get_wordlist_name () const
{
  return _wordlist_name;
}

/* Returns the length table array name.  */
INLINE const char *
Options::get_lengthtable_name () const
{
  return _lengthtable_name;
}

/* Returns the string pool name.  */
INLINE const char *
Options::get_stringpool_name () const
{
  return _stringpool_name;
}

/* Returns the prefix for the constants.  */
INLINE const char *
Options::get_constants_prefix () const
{
  return _constants_prefix;
}

/* Returns the string used to delimit keywords from other attributes.  */
INLINE const char *
Options::get_delimiters () const
{
  return _delimiters;
}

/* Returns key positions.  */
INLINE const Positions&
Options::get_key_positions () const
{
  return _key_positions;
}
