#ifndef SHARED_INIT_HH_ #define SHARED_INIT_HH_ #include #include #include namespace shared { constexpr auto DEFAULT_ADDRESS = "0.0.0.0"; constexpr auto SINGLEPLAYER_ADDRESS = "localhost"; constexpr auto DEFAULT_PORT = "8191"; void init(); using main_func_t = void (*)(const std::string_view, const std::string_view); void try_main(const main_func_t& func, const std::string_view address, const std::string_view port); // We use our own arg struct to parse args. struct arg { const char* name; // "address" const char* desc; // "change the address" const char* val; // "a:" }; using args_t = std::vector; const args_t& get_options(); using args_callback_t = bool (*)(const int& c, const char* const arg); bool parse_arg(const int& c, const char* const arg); using args_callbacks_t = std::vector; void parse_args(const int argc, char* const argv[], const args_t& args, const args_callbacks_t& callback); } // namespace shared #endif