Loading...
Searching...
No Matches
18#include "pw_status/status.h"
19#include "pw_status/status_with_size.h"
25#define PW_TRY(expr) _PW_TRY(_PW_TRY_UNIQUE(__LINE__), expr, return)
27#define _PW_TRY(result, expr, return_stmt) \
29 if (auto result = (expr); !result.ok()) { \
30 return_stmt ::pw::internal::ConvertToStatus(result); \
36#define PW_TRY_ASSIGN(lhs, expression) \
37 _PW_TRY_ASSIGN(_PW_TRY_UNIQUE(__LINE__), lhs, expression, return)
39#define _PW_TRY_ASSIGN(result, lhs, expr, return_stmt) \
40 auto result = (expr); \
42 return_stmt ::pw::internal::ConvertToStatus(result); \
44 lhs = ::pw::internal::ConvertToValue(result)
49#define PW_TRY_WITH_SIZE(expr) _PW_TRY_WITH_SIZE(_PW_TRY_UNIQUE(__LINE__), expr)
51#define _PW_TRY_WITH_SIZE(result, expr) \
53 if (auto result = (expr); !result.ok()) { \
54 return ::pw::internal::ConvertToStatusWithSize(result); \
58#define _PW_TRY_UNIQUE(line) _PW_TRY_UNIQUE_EXPANDED(line)
59#define _PW_TRY_UNIQUE_EXPANDED(line) _pw_try_unique_name_##line
66#define PW_CO_TRY(expr) _PW_TRY(_PW_TRY_UNIQUE(__LINE__), expr, co_return)
73#define PW_CO_TRY_ASSIGN(lhs, expression) \
74 _PW_TRY_ASSIGN(_PW_TRY_UNIQUE(__LINE__), lhs, expression, co_return)