summaryrefslogtreecommitdiff
path: root/src/core/hle/result.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/result.h')
-rw-r--r--src/core/hle/result.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/core/hle/result.h b/src/core/hle/result.h
index d67e68bae..ef4b2d417 100644
--- a/src/core/hle/result.h
+++ b/src/core/hle/result.h
@@ -135,6 +135,14 @@ union Result {
135 [[nodiscard]] constexpr bool IsFailure() const { 135 [[nodiscard]] constexpr bool IsFailure() const {
136 return !IsSuccess(); 136 return !IsSuccess();
137 } 137 }
138
139 [[nodiscard]] constexpr u32 GetInnerValue() const {
140 return static_cast<u32>(module.Value()) | (description << module.bits);
141 }
142
143 [[nodiscard]] constexpr bool Includes(Result result) const {
144 return GetInnerValue() == result.GetInnerValue();
145 }
138}; 146};
139static_assert(std::is_trivial_v<Result>); 147static_assert(std::is_trivial_v<Result>);
140 148
@@ -462,9 +470,6 @@ constexpr inline Result __TmpCurrentResultReference = ResultSuccess;
462#define R_UNLESS(expr, res) \ 470#define R_UNLESS(expr, res) \
463 { \ 471 { \
464 if (!(expr)) { \ 472 if (!(expr)) { \
465 if (res.IsError()) { \
466 LOG_ERROR(Kernel, "Failed with result: {}", res.raw); \
467 } \
468 R_THROW(res); \ 473 R_THROW(res); \
469 } \ 474 } \
470 } 475 }