text: #pragma once
  
  #include "Core/Base.hpp"
  #include "Core/LoggerController.hpp"
  
  namespace JE {
  
      template<typename... Args>
      inline void ASSERT_([[maybe_unused]] bool check, [[maybe_unused]] const char *assertion, [[maybe_unused]] const char *file, [[maybe_unused]] int line, [[maybe_unused]] Args &&... args)
      {
  #ifdef JE_ENABLE_ASSERTS
          if (!check) {
              AllLogger::critical("Assertion '{0}' failed at {1}:{2} | {3}", assertion, file, line, std::forward<Args>(args)...);
              DEBUGBREAK();
          }
  #endif
      }
  
  }// namespace JE
  
  #ifdef ASSERT
  #undef ASSERT
  #endif
  
  // NOLINTNEXTLINE
  #define ASSERT(check, ...) JE::ASSERT_(check, JE_STRINGIFY_MACRO(check), __FILE__, __LINE__, __VA_ARGS__)
  