29 lines
		
	
	
	
		
			766 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
	
		
			766 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #pragma once
 | |
| 
 | |
| #include <string>
 | |
| #include <fmt/core.h>
 | |
| #include <functional>
 | |
| 
 | |
| 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);
 | |
| }
 | 
