iife 1.0.0

A macro with a better syntax for immediately invoked function expressions
Documentation
  • Coverage
  • 50%
    1 out of 2 items documented1 out of 1 items with examples
  • Size
  • Source code size: 6.21 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.06 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 10s Average build duration of successful builds.
  • all releases: 10s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Toldoven/iife
    1 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • KPidS

iife! {} macro for a better immediately invoked function expression syntax

Example

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(())
}