assertion 1.0.0

Quick assertions and traces with macros

Released 2017-03-17.

To install, run:

haxelib install assertion 1.0.0

See using Haxelib in Haxelib documentation for more information.

Current version1.0.0
StatisticsInstalled 2 times
Tags cross

Quick assertions and traces with macros

screenshot from 2017-03-17 04-08-57


import Assertion.*;
var foo = "a";

// basic `assert`, that throws if the condition fails
assert(foo == "bar");

// trace some context if the assertion fails
// you can add as many expressions to trace as you need
assert(foo == "bar", foo, Sys.systemName());

// trace expressions consisting of string literals are automatically threated as descriptions
assert(foo.length == 3, "correct length at least");

// if you just want a warning, instead of a throw, use `weakAssert`
weakAssert(foo == "bar");

// if you just want to trace like us, use `show`
show(foo, Sys.systemName(), "show everything");


Assertion works out of the box without any configuration, but in same cases you might want to change or disable certain default behaviors.

You can configure the library both at compile time and runtime.

Compile time configuration

Use -D ASSERTION_NO_ASSERT to disable the generation of all assertions (both regular and weak).

You can also use -D ASSERTION_NO_WEAK_ASSERT to only disable the generation of weak assertions. Similarly, you can disable the generation of code for show with -D ASSERTION_NO_SHOW.

Runtime configuration

Similarly to the compile time settings, you can use the following variables to alter the behavior of Assertion at runtime:

  • Assertion.enableAssert (defaults to true)
  • Assertion.enableWeakAssert (defaults to true)
  • Assertion.enableShow (defaults to true)