40 lines
		
	
	
	
		
			948 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
	
		
			948 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #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<bool()> 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<bool()> 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};
 | |
|   }
 | |
| }
 | 
