aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/package_spec_parse_result.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'toolsrc/src/package_spec_parse_result.cpp')
-rw-r--r--toolsrc/src/package_spec_parse_result.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/toolsrc/src/package_spec_parse_result.cpp b/toolsrc/src/package_spec_parse_result.cpp
new file mode 100644
index 000000000..757b6df53
--- /dev/null
+++ b/toolsrc/src/package_spec_parse_result.cpp
@@ -0,0 +1,45 @@
+#include <package_spec.h>
+#include <system_error>
+#include "package_spec_parse_result.h"
+
+namespace vcpkg
+{
+ const char* package_spec_parse_result_category_impl::name() const noexcept
+ {
+ return "package_spec_parse_result";
+ }
+
+ std::string package_spec_parse_result_category_impl::message(int ev) const noexcept
+ {
+ switch (static_cast<package_spec_parse_result>(ev))
+ {
+ case package_spec_parse_result::success:
+ return "OK";
+ case package_spec_parse_result::too_many_colons:
+ return "Too many colons";
+ default:
+ Checks::unreachable();
+ }
+ }
+
+ const std::error_category& package_spec_parse_result_category()
+ {
+ static package_spec_parse_result_category_impl instance;
+ return instance;
+ }
+
+ std::error_code make_error_code(package_spec_parse_result e)
+ {
+ return std::error_code(static_cast<int>(e), package_spec_parse_result_category());
+ }
+
+ package_spec_parse_result to_package_spec_parse_result(int i)
+ {
+ return static_cast<package_spec_parse_result>(i);
+ }
+
+ package_spec_parse_result to_package_spec_parse_result(std::error_code ec)
+ {
+ return to_package_spec_parse_result(ec.value());
+ }
+}