/* Blinker
   Copyright 2011-2019 Stefan Schuermans <stefan@blinkenarea.org>
   Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
   a blinkenarea.org project */

#include <string>

#include "Bool.h"
#include "StringParser.h"

namespace Blinker {

/// constructor
Bool::Bool():
  m_bool(false)
{
}

/**
 * @brief parse from string format
 * @param[in] str string format
 * @return if parsing was successful
 */
bool Bool::fromStr(const std::string &str)
{
  StringParser parser(str);
  bool boolVal;

  if (!parser.boolVal(boolVal) ||
      !parser.isDone())
    return false;
  m_bool = boolVal;
  return true;
}

/**
 * @brief convert to string format
 * @return string format
 */
std::string Bool::toStr() const
{
  return m_bool ? "true" : "false";
}

} // namespace Blinker

