# API: Debug Assertion Macros
### Scope
- **Purpose**: Provide identity and non-identity assertion macros that are stripped from release builds.
- **Responsibility**: Documents the debug assertion macro API — its four forms, error behavior, and compatibility guarantees.
- **In Scope**: The four macro forms for equality and inequality assertion, active only under debug assertions.
- **Out of Scope**: Release-build assertions, assertions on ordering or containment, and non-panicking assertion forms.
### Cross-References
| doc | [feature/001_error_facade.md](../feature/001_error_facade.md) | Facade that exposes this API surface |
### Abstract
Four debug-only macros that assert equality or inequality between two expressions. All four are absent from release builds — no binary cost. The short-form and canonical-alias pairs exist to serve distinct readability conventions at different call sites.
### Operations
**debug_assert_id** — asserts that two expressions are equal. Equivalent to a standard equality check when debug assertions are active; absent from release builds.
**debug_assert_identical** — canonical alias of debug_assert_id. Delegates directly to debug_assert_id when debug assertions are active. Use when the "identical" terminology better matches the calling context.
**debug_assert_ni** — asserts that two expressions are not equal. Equivalent to a standard inequality check when debug assertions are active; absent from release builds.
**debug_assert_not_identical** — canonical alias of debug_assert_ni. Delegates directly to debug_assert_ni when debug assertions are active.
### Error Handling
All macros panic with a standard equality-failure message when the assertion fails in a debug build. They produce no output and take no action in release builds. The panic message follows the same format as the standard assertion macros.
### Compatibility Guarantees
The four macro names are stable. The two aliases (debug_assert_identical, debug_assert_not_identical) are permanent rather than deprecated — they serve distinct readability purposes at different call sites.