Error.h 1.5 KB

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