refactor(option_utils): enhance option handling with default values and names
Removed server.hpp as part of refactoring the option utilities to use Boost's program_options more effectively, allowing for named default values.
This commit is contained in:
@@ -4,11 +4,17 @@
|
||||
|
||||
class OptionUtils
|
||||
{
|
||||
public:
|
||||
template <typename T>
|
||||
using OptionValue = boost::program_options::typed_value<T> *;
|
||||
|
||||
template <typename T>
|
||||
static OptionValue<T>
|
||||
withDefault(const T &value, const char *name = nullptr);
|
||||
|
||||
protected:
|
||||
OptionUtils() = default;
|
||||
~OptionUtils() = default;
|
||||
|
||||
template <typename T> static auto withDefault(T value);
|
||||
};
|
||||
|
||||
#include "option_utils.tpp"
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
#pragma once
|
||||
|
||||
#include "option_utils.hpp"
|
||||
|
||||
template <typename T> auto OptionUtils::withDefault(T value)
|
||||
template <typename T>
|
||||
OptionUtils::OptionValue<T>
|
||||
OptionUtils::withDefault(const T &value, const char *name)
|
||||
{
|
||||
return boost::program_options::value<T>()->default_value(value);
|
||||
auto v = boost::program_options::value<T>()->default_value(value);
|
||||
if (name) {
|
||||
v->value_name(name); // Optional
|
||||
}
|
||||
return v;
|
||||
}
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
class Server
|
||||
{
|
||||
public:
|
||||
virtual ~Server() = default;
|
||||
virtual void start() = 0;
|
||||
virtual void stop() = 0;
|
||||
};
|
||||
Reference in New Issue
Block a user