A macro like guard
in Swift.
It helps to better express code logic without mind twists when checking conditions.
It implements what I termed "procedural warranty".
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
.
- Pattern Matched Guard: consider just use
if-let-else
- "Structural Warranty": to enforce a condition on a struct, nutype is a good one.