16 #include <string_view>
22 enum class ErrorCode : uint32_t
55 InsufficientPrivilegeError,
100 InitializationFailed,
115 ExternalApiCallFailed,
155 return std::forward<T>(arg);
163 ErrorCode Code {ErrorCode::UnknownError};
164 uint32_t LastError {0};
167 operator==(
const Err& rhs)
const
169 return rhs.Code == this->Code && rhs.LastError == this->LastError;
173 operator==(ErrorCode Code)
const
175 return Code == this->Code;
186 using Result = std::variant<T, Err>;
199 Failed(Result<T>
const& Res) noexcept
201 return std::get_if<Err>(&Res) !=
nullptr;
215 Success(Result<T>
const& Result) noexcept
217 return !Failed(Result);
231 Value(Result<T>&& SuccessResult)
233 return std::move(std::get<T>(SuccessResult));
238 Value(Result<T>& SuccessResult)
240 T copy = std::get<T>(SuccessResult);
253 Error(Result<T>
const& ErrorResult)
255 return std::get<Err>(ErrorResult);
269 ValueOr(Result<T>&& Result, T AlternativeValue)
271 return Success(Result) ? std::move(Value(Result)) : AlternativeValue;
276 ValueOr(Result<T>& Result, T AlternativeValue)
278 return Success(Result) ? Value(Result) : AlternativeValue;
Templated return value for failure cases.
Definition: Error.hpp:162