#ifndef CORE_ERROR_H #define CORE_ERROR_H #include "core/utils/Check.h" typedef int CoreError; #define CORE_ERROR_CODE(n) ((CoreError)(1 << n)) #define CORE_ERROR_NONE 0 #define CORE_ERROR_ERROR CORE_ERROR_CODE(0) #define CORE_ERROR_NEGATIVE_ARGUMENT CORE_ERROR_CODE(1) #define CORE_ERROR_CAPACITY_REACHED CORE_ERROR_CODE(2) #define CORE_ERROR_BLOCKED_STDOUT CORE_ERROR_CODE(3) #define CORE_ERROR_OUT_OF_MEMORY CORE_ERROR_CODE(4) #define CORE_ERROR_INVALID_CHAR CORE_ERROR_CODE(5) #define CORE_ERROR_NOT_FOUND CORE_ERROR_CODE(6) #define CORE_ERROR_INVALID_STATE CORE_ERROR_CODE(7) #define CORE_ERROR_INVALID_INDEX CORE_ERROR_CODE(8) #define CORE_ERROR_INVALID_ARGUMENT CORE_ERROR_CODE(9) #define CORE_ERROR_TIME_NOT_AVAILABLE CORE_ERROR_CODE(10) #define CORE_ERROR_SLEEP_INTERRUPTED CORE_ERROR_CODE(11) #define CORE_ERROR_THREAD_ERROR CORE_ERROR_CODE(12) #define CORE_ERROR_MUTEX_ERROR CORE_ERROR_CODE(13) #define CORE_ERROR_EXISTING_KEY CORE_ERROR_CODE(14) #define CORE_ERROR_CANNOT_OPEN_FILE CORE_ERROR_CODE(15) #define CORE_ERROR_END_OF_FILE CORE_ERROR_CODE(16) #define CORE_RETURN_ERROR(checked) \ { \ CoreError error = checked; \ if(error != CORE_ERROR_NONE) [[unlikely]] { \ return error; \ } \ } #endif