From acd5fd453f1bc1d470ab5a779d332e98ec52a830 Mon Sep 17 00:00:00 2001 From: NukeBird Date: Thu, 13 Feb 2025 18:59:40 +0300 Subject: [PATCH] Add dbc.cpp --- dbc.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 dbc.cpp diff --git a/dbc.cpp b/dbc.cpp new file mode 100644 index 0000000..482ed9b --- /dev/null +++ b/dbc.cpp @@ -0,0 +1,44 @@ +#include "dbc.hpp" +#include + +void dbc::log(const string &message) { + std::cerr << "!!!!!!!!!!" << message << std::endl; +} + +void dbc::sentinel(const string &message) { + string err = fmt::format("[SENTINEL!] {}", message); + dbc::log(err); + throw dbc::SentinelError{err}; +} + +void dbc::pre(const string &message, bool test) { + if(!test) { + string err = fmt::format("[PRE!] {}", message); + dbc::log(err); + 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!] {}", message); + dbc::log(err); + 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); + dbc::log(err); + throw dbc::CheckError{err}; + } +} \ No newline at end of file