aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/include/PackageSpecParseResult.h
diff options
context:
space:
mode:
Diffstat (limited to 'toolsrc/include/PackageSpecParseResult.h')
-rw-r--r--toolsrc/include/PackageSpecParseResult.h32
1 files changed, 14 insertions, 18 deletions
diff --git a/toolsrc/include/PackageSpecParseResult.h b/toolsrc/include/PackageSpecParseResult.h
index b72c534c2..1462b8073 100644
--- a/toolsrc/include/PackageSpecParseResult.h
+++ b/toolsrc/include/PackageSpecParseResult.h
@@ -1,5 +1,6 @@
#pragma once
-#include <system_error>
+
+#include "vcpkg_expected.h"
namespace vcpkg
{
@@ -10,27 +11,22 @@ namespace vcpkg
INVALID_CHARACTERS
};
- struct PackageSpecParseResultCategoryImpl final : std::error_category
- {
- virtual const char* name() const noexcept override;
+ CStringView to_string(PackageSpecParseResult ev) noexcept;
- virtual std::string message(int ev) const noexcept override;
- };
-
- const std::error_category& package_spec_parse_result_category();
+ template<>
+ struct ErrorHolder<PackageSpecParseResult>
+ {
+ ErrorHolder() : m_err(PackageSpecParseResult::SUCCESS) {}
+ ErrorHolder(PackageSpecParseResult err) : m_err(err) {}
- std::error_code make_error_code(PackageSpecParseResult e);
+ constexpr bool has_error() const { return m_err != PackageSpecParseResult::SUCCESS; }
- PackageSpecParseResult to_package_spec_parse_result(int i);
+ const PackageSpecParseResult& error() const { return m_err; }
+ PackageSpecParseResult& error() { return m_err; }
- PackageSpecParseResult to_package_spec_parse_result(std::error_code ec);
-}
+ CStringView to_string() const { return vcpkg::to_string(m_err); }
-// Enable implicit conversion to std::error_code
-namespace std
-{
- template<>
- struct is_error_code_enum<vcpkg::PackageSpecParseResult> : ::std::true_type
- {
+ private:
+ PackageSpecParseResult m_err;
};
}