Crates.io | warrant |
lib.rs | warrant |
version | 0.1.0 |
source | src |
created_at | 2024-06-07 07:33:15.419933 |
updated_at | 2024-06-07 07:33:15.419933 |
description | A Swift-guard-like macro for Rust |
homepage | https://github.com/ifsheldon/warrant |
repository | https://github.com/ifsheldon/warrant |
max_upload_size | |
id | 1264474 |
size | 4,427 |
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".
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
.
if-let-else