Error.hpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #ifndef CORE_ERROR_HPP
  2. #define CORE_ERROR_HPP
  3. namespace Core {
  4. enum class Error {
  5. NONE = 0,
  6. NEGATIVE_ARGUMENT,
  7. CAPACITY_REACHED,
  8. BLOCKED_STDOUT,
  9. OUT_OF_MEMORY,
  10. INVALID_CHAR,
  11. NOT_FOUND,
  12. INVALID_STATE,
  13. INVALID_INDEX,
  14. INVALID_ARGUMENT,
  15. TIME_NOT_AVAILABLE,
  16. SLEEP_INTERRUPTED,
  17. THREAD_ERROR,
  18. MUTEX_ERROR,
  19. EXISTING_KEY,
  20. CANNOT_OPEN_FILE,
  21. END_OF_FILE
  22. };
  23. const char* getErrorName(Error e);
  24. inline bool checkError(Error& storage, Error e) {
  25. return (storage = e) != Error::NONE;
  26. }
  27. #define CORE_RETURN_ERROR(checked) \
  28. { \
  29. Core::Error error = Core::Error::NONE; \
  30. if(checkError(error, checked)) [[unlikely]] { \
  31. return error; \
  32. } \
  33. }
  34. }
  35. #endif