1 个稳定版本
1.0.0 | 2024年4月6日 |
---|
在 无标准库 中排名第 206
5KB
iife! {}
宏,用于提供更好的即时调用函数表达式语法
示例
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(())
}
lib.rs
:
iife! {}
宏,用于提供更好的即时调用函数表达式语法
示例
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(())
}