#ifndef FZSSH_VERSION_HEADER
#define FZSSH_VERSION_HEADER

#include "visibility.hpp"

#include <tuple>
#include <string>


/** \file
 * \brief Macros and functions to get the version of the headers and the library
 */

/// \brief Version string of the fzssh headers
#define FZSSH_VERSION "1.2.1"

#define FZSSH_VERSION_MAJOR  1
#define FZSSH_VERSION_MINOR  2
#define FZSSH_VERSION_MICRO  1
#define FZSSH_VERSION_NANO   0

/// \brief Suffix string, e.g. "rc1"
#define FZSSH_VERSION_SUFFIX ""

namespace fz::ssh {
/// \brief Get version string of fzssh
std::string FZSSH_PUBLIC_SYMBOL get_version_string();

/// \brief Get version of fzssh broken down into components major, minor, micro, nano and suffix
std::tuple<int, int, int, int, std::string> FZSSH_PUBLIC_SYMBOL get_version();
}
#endif
