#ifndef SIMPLICITY_SIMPLICITY_ASSERT_H
#define SIMPLICITY_SIMPLICITY_ASSERT_H
#include <assert.h>
#if (defined NDEBUG) && (!defined RECKLESS)
# error "Don't be RECKLESS. Turn off NDEBUG when building. For production builds use PRODUCTION."
#endif
#ifdef PRODUCTION
# define PRODUCTION_FLAG 1
#else
# define PRODUCTION_FLAG 0
#endif
#define rustsimplicity_0_6_assert assert
#define rustsimplicity_0_6_debug_assert(cond) do { if (!PRODUCTION_FLAG) { assert(cond); } } while(0)
#if (defined NDEBUG) && (defined __hasbuiltin)
# if __has_builtin(__builtin_unreachable)
# define SIMPLICITY_UNREACHABLE() __builtin_unreachable()
# endif
#endif
#ifndef SIMPLICITY_UNREACHABLE
# define SIMPLICITY_UNREACHABLE assert(NULL == "SIMPLICITY_UNCREACHABLE was reached")
#endif
#endif