#include "last_getopt_easy_setup.h" namespace NLastGetopt { TEasySetup::TEasySetup(const TStringBuf& optstring) : TOpts(optstring) { AddHelpOption(); } TOpt& TEasySetup::AdjustParam(const char* longName, const char* help, const char* argName, bool required) { Y_ASSERT(longName); TOpt& o = AddLongOption(longName); if (help) { o.Help(help); } if (argName) { o.RequiredArgument(argName); } else { o.HasArg(NO_ARGUMENT); } if (required) { o.Required(); } return o; } TEasySetup& TEasySetup::operator()(char shortName, const char* longName, const char* help, bool required) { AdjustParam(longName, help, nullptr, required).AddShortName(shortName); return *this; } TEasySetup& TEasySetup::operator()(char shortName, const char* longName, const char* argName, const char* help, bool required) { AdjustParam(longName, help, argName, required).AddShortName(shortName); return *this; } TEasySetup& TEasySetup::operator()(const char* longName, const char* help, bool required) { AdjustParam(longName, help, nullptr, required); return *this; } TEasySetup& TEasySetup::operator()(const char* longName, const char* argName, const char* help, bool required) { AdjustParam(longName, help, argName, required); return *this; } }