skullc-peripherals/Utility/Src/utility_assert.cpp

43 lines
575 B
C++

//
// Created by erki on 29.06.22.
//
#include "utility_assert.hpp"
#include <exception>
namespace
{
Utility::Assert::assert_cb INSTALLED_HANDLER = nullptr;
}
namespace Utility::Assert
{
namespace Detail
{
void assertImpl(const char* expression, const char* file, const int line)
{
if (INSTALLED_HANDLER)
INSTALLED_HANDLER(expression, file, line);
else
std::terminate();
}
}// namespace Detail
void setHandler(assert_cb callback)
{
INSTALLED_HANDLER = callback;
}
assert_cb getHandler()
{
return INSTALLED_HANDLER;
}
}// namespace Utility::Assert