summaryrefslogtreecommitdiffstats
path: root/library/cpp/getopt/small/last_getopt_handlers.h
blob: 5311fbbe42dd41bb10a14f07152f1450a8c04342 (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);
}