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
 |