aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/include/PackageSpecParseResult.h
diff options
context:
space:
mode:
authormmazat <m.mazaheri.t@gmail.com>2017-06-07 21:02:57 -0400
committerGitHub <noreply@github.com>2017-06-07 21:02:57 -0400
commitff52016d018c9d346cd402e9cc98d24dff39d900 (patch)
tree217cdb8ba8e0011f8d88a56e19770009289661b6 /toolsrc/include/PackageSpecParseResult.h
parent56b27d1d00b08af2cba16197cc7b5f5eed98bca0 (diff)
parentab0b48927505103c4b8782f90a44336a2bb7791d (diff)
downloadvcpkg-ff52016d018c9d346cd402e9cc98d24dff39d900.tar.gz
vcpkg-ff52016d018c9d346cd402e9cc98d24dff39d900.zip
Merge pull request #1 from Microsoft/master
pull changes from upstream
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;
};
}