wa_assert (assert v1.0.1)

Summary

Types

assert_cause/0

-type assert_cause() :: comparison_cause() | generic_cause().

comparison_cause/0

-type comparison_cause() ::
          #{type := comparison,
            pins := pins(),
            left := term(),
            right := term(),
            operator := atom(),
            expression := string()}.

comparison_meta/0

-type comparison_meta() ::
          #{type := comparison, pins := pins(), left := term(), right := term(), operator := atom()}.

error_description/0

-type error_description() :: #{general => unicode:chardata(), reason => unicode:chardata()}.

error_info/1

-type error_info(Cause) :: #{cause => Cause, module => module(), function => atom()}.

generic_cause/0

-type generic_cause() :: #{type := generic, pins := pins(), expression := string()}.

generic_meta/0

-type generic_meta() :: #{type := generic, pins := pins()}.

match_cause/0

-type match_cause() :: #{pins := pins(), pattern := term()}.

meta/0

-type meta() :: comparison_meta() | generic_meta().

pins/0

-type pins() :: #{atom() => term()}.

Functions

$assert_match_error_info$(Expression)

-spec '$assert_match_error_info$'(term()) -> {error, no_error_info}.

$expand_assert$(Expression)

-spec '$expand_assert$'(term()) -> #{bool_expr := term(), meta := meta()}.

assert_error_info(Expression, Meta)

-spec assert_error_info(string(), meta()) -> {ok, error_info(assert_cause())} | {error, no_error_info}.

error_info(Pattern, Pins)

-spec error_info(binary(), pins()) -> {ok, error_info(match_cause())}.

format_comparison_error(Reason0, _)

-spec format_comparison_error(term(), erlang:stacktrace()) -> error_description().

format_error(Reason, _)

-spec format_error(term(), erlang:stacktrace()) -> error_description().

format_generic_error(Reason0, _)

-spec format_generic_error(term(), erlang:stacktrace()) -> error_description().