Defensive Programming
Assertions verify invariants that must hold for the program to be correct. Choosing the right assertion type balances safety against runtime cost.
Use debug_assert for correctness-only checks (debug-assert)
Assertions verifying invariants
that should never fail in correct code
belong in debug_assert!, not assert!.
debug_assert! is compiled out in release builds,
so the check catches bugs during development
without costing anything in production.
debug_assert!(self.align.is_multiple_of(PAGE_SIZE));
debug_assert!(self.align.is_power_of_two());
See also:
std::debug_assert!
and Rust Reference: debug_assertions.