| Crates.io | iife |
| lib.rs | iife |
| version | 1.0.0 |
| created_at | 2024-04-06 15:35:02.780079+00 |
| updated_at | 2024-04-06 15:35:02.780079+00 |
| description | A macro with a better syntax for immediately invoked function expressions |
| homepage | |
| repository | https://github.com/kpids/iife |
| max_upload_size | |
| id | 1198353 |
| size | 4,053 |
iife! {} macro for a better immediately invoked function expression syntax
use iife::iife;
use serde_json::{json, Value};
fn request() -> Result<Value, String> {
Ok(json!({
"first": {
"second": {
"third": "value"
}
}
}))
}
fn main() -> Result<(), String> {
let response = request()?;
// This iife context allows you to use ? to return an Option instead of Result
let parsed = iife! {
response.get("first")?.get("second")?.get("third")?.as_str()
}
.ok_or("Failed to parse")?;
assert_eq!(parsed, "value");
Ok(())
}