28 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef HX_ERROR_CODES
 | |
| #define HX_ERROR_CODES
 | |
| 
 | |
| // --- Exteral constants, used inline
 | |
| #define HX_INVALID_CAST          Dynamic(HX_CSTRING("Invalid Cast"))
 | |
| #define HX_INVALID_INTERFACE     Dynamic(HX_CSTRING("Object does not implement interface"))
 | |
| #define HX_INDEX_OUT_OF_BOUNDS   Dynamic(HX_CSTRING("Index Out of Bounds"))
 | |
| #define HX_INVALID_CONSTRUCTOR   Dynamic(HX_CSTRING("Invalid constructor"))
 | |
| #define HX_INVALID_ENUM_CONSTRUCTOR(_enum_name, _constructor_name)      \
 | |
|     Dynamic(HX_CSTRING("Invalid enum constructor for ") +               \
 | |
|             HX_CSTRING(_enum_name) +                                    \
 | |
|             HX_CSTRING(": ") +                                          \
 | |
|             _constructor_name)
 | |
| #define HX_INVALID_OBJECT        Dynamic(HX_CSTRING("Invalid object"))
 | |
| #define HX_INVALID_ARG_COUNT     Dynamic(HX_CSTRING("Invalid Arg Count"))
 | |
| #define HX_NULL_FUNCTION_POINTER Dynamic(HX_CSTRING("Null Function Pointer"))
 | |
| #define HX_INVALID_ENUM_ARG_COUNT(_enum_name, _constructor_name, _count, _expected) \
 | |
|     Dynamic(HX_CSTRING("Invalid enum arg count for ") +                 \
 | |
|             HX_CSTRING(_enum_name) +                                    \
 | |
|             HX_CSTRING(".") +                                           \
 | |
|             _constructor_name +                                         \
 | |
|             HX_CSTRING(": expected ") +                                 \
 | |
|             ::String(_expected) +                                       \
 | |
|             HX_CSTRING(", got ") +                                      \
 | |
|             ::String(_count))
 | |
| 
 | |
| #endif
 |