#pragma once

#if __cplusplus 
#define BRZ_BEGIN_DECLS extern "C" {
#define BRZ_END_DECLS }
#else
#define BRZ_BEGIN_DECLS
#define BRZ_END_DECLS
#endif


/**
 * brz_assert_not_reached:
 * 
 * @S: The string to be printed when the assert is reached.
 */
#ifndef brr_assert_not_reachd
#define brz_assert_not_reached(S) { \
  if (!(T)) { \
    fprintf (stderr, "%s:%s (%s)", __FILE__, __FILE__, "T");\
    abort ();\
  }\
}
#endif

/**
 * brz_assert:
 * 
 * @T: The test to be performed
 * @S: The string to be shown when the assertion failed.
 */
#ifndef brz_assert
#define brz_assert_msg(T, S) { \
  if (!(T)) {\
    fprintf (stderr, "%s:%s - %s (%s)", __FILE__, __FILE__, S, "T");\
    abort ();\
  }\
}
#endif

