aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/include/PackageSpecParseResult.h
blob: c3072ea2a502db6ba8d48a871e58e342a173ed57 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#pragma once
#include <system_error>

namespace vcpkg
{
    enum class PackageSpecParseResult
    {
        SUCCESS = 0,
        TOO_MANY_COLONS,
        INVALID_CHARACTERS
    };

    struct PackageSpecParseResultCategoryImpl final : std::error_category
    {
        virtual const char* name() const noexcept override;

        virtual std::string message(int ev) const noexcept override;
    };

    const std::error_category& package_spec_parse_result_category();

    std::error_code make_error_code(PackageSpecParseResult e);

    PackageSpecParseResult to_package_spec_parse_result(int i);

    PackageSpecParseResult to_package_spec_parse_result(std::error_code ec);
}

// Enable implicit conversion to std::error_code
namespace std
{
    template <>
    struct is_error_code_enum<vcpkg::PackageSpecParseResult> : ::std::true_type
    {
    };
}