#include "dbc.hpp" void dbc::log(const string &message) { fmt::print("{}\n", message); } void dbc::sentinel(const string &message) { string err = fmt::format("[SENTINEL!] {}\n", message); throw dbc::SentinelError{err}; } void dbc::pre(const string &message, bool test) { if(!test) { string err = fmt::format("[PRE!] {}\n", message); throw dbc::PreCondError{err}; } } void dbc::pre(const string &message, std::function tester) { dbc::pre(message, tester()); } void dbc::post(const string &message, bool test) { if(!test) { string err = fmt::format("[POST!] {}\n", message); throw dbc::PostCondError{err}; } } void dbc::post(const string &message, std::function tester) { dbc::post(message, tester()); } void dbc::check(bool test, const string &message) { if(!test) { string err = fmt::format("[CHECK!] {}\n", message); fmt::println("{}", err); throw dbc::CheckError{err}; } }