2021-07-15 17:04:35 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
namespace espcpputils {
|
|
|
|
|
|
|
|
|
|
#define CALL_AND_EXIT_ON_ERROR(METHOD, ...) \
|
2021-08-06 17:10:51 +02:00
|
|
|
if (const auto result##__LINE__ = METHOD(__VA_ARGS__); result##__LINE__ != ESP_OK) \
|
2021-07-15 17:04:35 +02:00
|
|
|
{ \
|
2021-08-06 17:10:51 +02:00
|
|
|
ESP_LOGE(TAG, "%s() failed with %s", #METHOD, esp_err_to_name(result##__LINE__)); \
|
|
|
|
|
return result##__LINE__; \
|
2021-07-15 17:04:35 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#define CALL_AND_EXIT(METHOD, ...) \
|
2021-08-06 17:10:51 +02:00
|
|
|
if (const auto result##__LINE__ = METHOD(__VA_ARGS__); result##__LINE__ != ESP_OK) \
|
2021-07-15 17:04:35 +02:00
|
|
|
{ \
|
2021-08-06 17:10:51 +02:00
|
|
|
ESP_LOGE(TAG, "%s() failed with %s", #METHOD, esp_err_to_name(result##__LINE__)); \
|
|
|
|
|
return result##__LINE__; \
|
2021-07-15 17:04:35 +02:00
|
|
|
} \
|
|
|
|
|
else \
|
2021-08-06 17:10:51 +02:00
|
|
|
return result##__LINE__;
|
2021-07-15 17:04:35 +02:00
|
|
|
|
|
|
|
|
} // namespace espcpputils
|