From f3b7b7d34b3bf2b1be18914577c96b66dead379a Mon Sep 17 00:00:00 2001 From: dec05eba Date: Tue, 12 Dec 2017 17:33:03 +0100 Subject: Download and extract missing dependencies from github Using libcurl and libarchive --- include/Result.hpp | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to 'include/Result.hpp') diff --git a/include/Result.hpp b/include/Result.hpp index f755b15..eb0aa01 100644 --- a/include/Result.hpp +++ b/include/Result.hpp @@ -13,20 +13,29 @@ namespace sibs static Result Ok(const T &value) { Result result(value); - result.error = false; + result.errorCode = 0; return result; } - static Result Err(const std::string &errMsg) + template + static Result Err(const Result &other) + { + Result result; + result.errMsg = other.getErrMsg(); + result.errorCode = other.getErrorCode(); + return result; + } + + static Result Err(const std::string &errMsg, int errorCode = 1) { Result result; result.errMsg = errMsg; - result.error = true; + result.errorCode = errorCode; return result; } - bool isOk() const { return !error; } - bool isErr() const { return error; } + bool isOk() const { return !errorCode; } + bool isErr() const { return errorCode; } T& unwrap() { @@ -39,12 +48,17 @@ namespace sibs assert(isErr()); return errMsg; } + + int getErrorCode() const + { + return errorCode; + } private: Result(const T &_value = T()) : value(_value) {} private: T value; std::string errMsg; - bool error; + int errorCode; }; } -- cgit v1.2.3