1 unstable release
0.1.0 | Jun 7, 2024 |
---|
#984 in Rust patterns
4KB
warrant
A guard macro that is like guard
in Swift.
It helps to better express code logic without mind twists when checking conditions.
It implements what I termed "procedural warranty".
Usages
Add warrant = "0.1.0"
to your Cargo.toml
.
Before
// if some condition is not satisfied, early return.
let condition = is_satisfied();
if ! condition {
return;
}
// proceed
After
use warrant::warrant;
let condition = is_satisfied();
warrant!(condition, else {
return;
});
// proceed
warrant::warrant
is also aliased as warrant::guard
if you come from Swift and prefer guard
.
License
Additional References
- Pattern Matched Guard: consider just use
if-let-else
- "Structural Warranty": to enforce a condition on a struct, nutype is a good one.