1#ifndef __FAIL_H_
2#define __FAIL_H_
3
4#define TOSTRING_HELPER(x) #x
5#define TOSTRING(x) TOSTRING_HELPER(x)
6
7#define PERFINDEX_FAILURE -1
8#define PERFINDEX_SUCCESS 0
9
10extern char* error_str;
11
12#define FAIL(message) do {\
13    error_str = message " at " __FILE__ ": " TOSTRING(__LINE__);\
14    return PERFINDEX_FAILURE;\
15} while(0)
16
17#define VERIFY(condition, fail_message) do {\
18    if(!(condition)) FAIL(fail_message);\
19} while(0)
20
21#endif
22