Crates.io | iife |
lib.rs | iife |
version | 1.0.0 |
source | src |
created_at | 2024-04-06 15:35:02.780079 |
updated_at | 2024-04-06 15:35:02.780079 |
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(())
}