warrant

Crates.iowarrant
lib.rswarrant
version0.1.0
sourcesrc
created_at2024-06-07 07:33:15.419933
updated_at2024-06-07 07:33:15.419933
descriptionA Swift-guard-like macro for Rust
homepagehttps://github.com/ifsheldon/warrant
repositoryhttps://github.com/ifsheldon/warrant
max_upload_size
id1264474
size4,427
(ifsheldon)

documentation

https://github.com/ifsheldon/warrant/blob/main/README.md

README

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.
Commit count: 5

cargo fmt