1 unstable release

0.1.0 Jun 7, 2024

#1309 in Rust patterns

Custom license

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

MIT

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.

No runtime deps