Asserts in my Rust code use a custom runtime macro "assert_eq_as_result" which does what the article is describing, by returning Rust Ok or Rust Error.
The Rust crate: https://crates.io/crates/assertables
All the macros have forms for different outcomes:
assert_gt!(1, 2) // panic
assert_gt_as_result!(1, 2) return Result (Ok or Error)
debug_assert_gt!(a, b) // panic when running in debug mode
If anyone here wants to help me port it to Zig, I'm happy to do it.