#pragma once

#ifdef __cplusplus
extern "C" {
#endif

/** Check condition and crash if check failed */
#define furi_check(__e) ((__e) ? (void)0 : furi_crash("fury_check failed\r\n"))

/** Only in debug build: Assert condition and crash if assert failed  */
#ifdef NDEBUG
#define furi_assert(__e) ((void)0)
#else
#define furi_assert(__e) ((__e) ? (void)0 : furi_crash("furi_assert failed\r\n"))
#endif

/** Crash system */
void furi_crash(const char* message);

#ifdef __cplusplus
}
#endif