aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/getopt/small/last_getopt_handlers.h
blob: d35456ef347bc0802ff6ab63d288c613e07ef3cc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#pragma once

#include "last_getopt_support.h"

#include <util/string/split.h>
#include <util/system/compiler.h>

namespace NLastGetopt {
    /// Handler to split option value by delimiter into a target container.
    template <class Container>
    struct TOptSplitHandler;

    /// Handler to split option value by delimiter into a target container and allow ranges.
    template <class Container>
    struct TOptRangeSplitHandler;

    /// Handler to parse key-value pairs (default delimiter is '=') and apply user-supplied handler to each pair
    template <class TpFunc>
    struct TOptKVHandler;

    [[noreturn]] void PrintUsageAndExit(const TOptsParser* parser);
    [[noreturn]] void PrintVersionAndExit(const TOptsParser* parser);
    [[noreturn]] void PrintShortVersionAndExit(const TString& appName);
}