dinkyecs_sandbox/dbc.hpp
2025-02-13 19:47:52 +03:00

39 lines
751 B
C++

#pragma once
#include <fmt/core.h>
#include <functional>
#include <string>
using std::string;
namespace dbc
{
class Error
{
public:
const string message;
Error(string m) : message{m} {}
Error(const char *m) : message{m} {}
};
class CheckError : public Error
{
};
class SentinelError : public Error
{
};
class PreCondError : public Error
{
};
class PostCondError : public Error
{
};
void log(const string &message);
void sentinel(const string &message);
void pre(const string &message, bool test);
void pre(const string &message, std::function<bool()> tester);
void post(const string &message, bool test);
void post(const string &message, std::function<bool()> tester);
void check(bool test, const string &message);
} // namespace dbc