Crates.io | better-assert |
lib.rs | better-assert |
version | 0.3.2 |
created_at | 2025-05-20 21:39:21.320383+00 |
updated_at | 2025-05-20 22:07:14.21489+00 |
description | Assertion helpers with built-in logging powered by better-logger |
homepage | https://github.com/Gistyr/better-assert |
repository | https://github.com/Gistyr/better-assert |
max_upload_size | |
id | 1682487 |
size | 58,324 |
Dependency note
See better-logger before you use this crate
better-assert
incorporatesbetter-logger
as its logging facade. Any project usingbetter-assert
must do the same.
better-logger
has terminal, file, and network logging functionality.
Scenario | Pain point with plain assert! |
How better-assert helps |
---|---|---|
WASM front-end | An assert_eq! fails silently in a user’s browser, you never see it |
log_assert_eq() sends a log entry to your backend before the panic |
Headless server / embedded | A panic! crash disappears into /dev/null or an unknown serial console |
log_panic() sends the details to a file, syslog, or over-the-wire sink |
/* no default feature enabled (enabling both at once won't compile) */
better-assert = { version = "0.3.2", features = ["native"] }
better-assert = { version = "0.3.2", features = ["wasm"] }
/* Also has no default feature enabled (enabling both at once won't compile) */
better-logger = { version = "1.0.3", features = ["native"] }
better-logger = { version = "1.0.3", features = ["wasm"] }
use better_assert::*;
let left = "value".to_string();
let right = "value".to_string();
log_assert_eq(&left, &right); // enabled in all builds
log_assert_ne(&left, &right);
debug_log_assert_eq(&left, &right); // enabled only in debug builds
debug_log_assert_ne(&left, &right);
log_panic(); // always logs, then panics
© 2025 Gistyr LLC
This project, better-assert, is dual-licensed under your choice of: