Merge pull request #6395 from lioncash/result-move
common_funcs: Move R_ macros to result.h
This commit is contained in:
		| @@ -97,17 +97,6 @@ __declspec(dllimport) void __stdcall DebugBreak(void); | ||||
|         return static_cast<T>(key) == 0;                                                           \ | ||||
|     } | ||||
|  | ||||
| /// Evaluates a boolean expression, and returns a result unless that expression is true. | ||||
| #define R_UNLESS(expr, res)                                                                        \ | ||||
|     {                                                                                              \ | ||||
|         if (!(expr)) {                                                                             \ | ||||
|             if (res.IsError()) {                                                                   \ | ||||
|                 LOG_ERROR(Kernel, "Failed with result: {}", res.raw);                              \ | ||||
|             }                                                                                      \ | ||||
|             return res;                                                                            \ | ||||
|         }                                                                                          \ | ||||
|     } | ||||
|  | ||||
| #define YUZU_NON_COPYABLE(cls)                                                                     \ | ||||
|     cls(const cls&) = delete;                                                                      \ | ||||
|     cls& operator=(const cls&) = delete | ||||
| @@ -116,20 +105,6 @@ __declspec(dllimport) void __stdcall DebugBreak(void); | ||||
|     cls(cls&&) = delete;                                                                           \ | ||||
|     cls& operator=(cls&&) = delete | ||||
|  | ||||
| #define R_SUCCEEDED(res) (res.IsSuccess()) | ||||
|  | ||||
| /// Evaluates an expression that returns a result, and returns the result if it would fail. | ||||
| #define R_TRY(res_expr)                                                                            \ | ||||
|     {                                                                                              \ | ||||
|         const auto _tmp_r_try_rc = (res_expr);                                                     \ | ||||
|         if (_tmp_r_try_rc.IsError()) {                                                             \ | ||||
|             return _tmp_r_try_rc;                                                                  \ | ||||
|         }                                                                                          \ | ||||
|     } | ||||
|  | ||||
| /// Evaluates a boolean expression, and succeeds if that expression is true. | ||||
| #define R_SUCCEED_IF(expr) R_UNLESS(!(expr), RESULT_SUCCESS) | ||||
|  | ||||
| namespace Common { | ||||
|  | ||||
| [[nodiscard]] constexpr u32 MakeMagic(char a, char b, char c, char d) { | ||||
|   | ||||
| @@ -358,3 +358,28 @@ ResultVal<std::remove_reference_t<Arg>> MakeResult(Arg&& arg) { | ||||
|             return CONCAT2(check_result_L, __LINE__);                                              \ | ||||
|         }                                                                                          \ | ||||
|     } while (false) | ||||
|  | ||||
| #define R_SUCCEEDED(res) (res.IsSuccess()) | ||||
|  | ||||
| /// Evaluates a boolean expression, and succeeds if that expression is true. | ||||
| #define R_SUCCEED_IF(expr) R_UNLESS(!(expr), RESULT_SUCCESS) | ||||
|  | ||||
| /// Evaluates a boolean expression, and returns a result unless that expression is true. | ||||
| #define R_UNLESS(expr, res)                                                                        \ | ||||
|     {                                                                                              \ | ||||
|         if (!(expr)) {                                                                             \ | ||||
|             if (res.IsError()) {                                                                   \ | ||||
|                 LOG_ERROR(Kernel, "Failed with result: {}", res.raw);                              \ | ||||
|             }                                                                                      \ | ||||
|             return res;                                                                            \ | ||||
|         }                                                                                          \ | ||||
|     } | ||||
|  | ||||
| /// Evaluates an expression that returns a result, and returns the result if it would fail. | ||||
| #define R_TRY(res_expr)                                                                            \ | ||||
|     {                                                                                              \ | ||||
|         const auto _tmp_r_try_rc = (res_expr);                                                     \ | ||||
|         if (_tmp_r_try_rc.IsError()) {                                                             \ | ||||
|             return _tmp_r_try_rc;                                                                  \ | ||||
|         }                                                                                          \ | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user