6 个版本
0.2.7 | 2024 年 2 月 11 日 |
---|---|
0.2.6 | 2024 年 2 月 11 日 |
0.1.0 | 2024 年 2 月 11 日 |
#320 in 解析器工具
用于 flexi_func
10KB
📦 Flexi Func Declarative 🚀
欢迎来到 Flexi Func Declarative - 一个旨在通过两个强大的宏(ff
(Flexi Func)和 fb
(Flexi Block)或(函数构建器))提升你的 Rust 编程体验的 Rust 包 🛠️。
这些宏旨在简化并增强你编写同步和异步代码的方式,使你的 Rust 之旅更加顺畅和高效。
🎁 功能
fb!
(Flexi Block)或(函数构建器):在同步函数中,使用 fb! 写下你的(sync
或async
)版本fb!
减少了条件函数生成的样板代码 🔄。
🚀 入门
此包旨在与 flexi_func 包一起使用和补充。要在你的项目中开始使用 flexi_func,请将其添加到你的 Cargo.toml
[dependencies]
flexi_func_declarative = "0.2.7"
然后,在你的 Rust 文件中导入宏
use flexi_func::{ff, fb};
💻 使用
🛠 ff
- Flexi Func
ff
宏简化了同步和异步函数变体的创建,包括可定制的错误处理。
基本示例
#[ff]
fn compute(data: Vec<u8>) -> Result<usize, MyError> {
// Your synchronous code here
}
这将在原始的 compute
函数旁边生成异步版本 compute_async
。
如果你需要在同步函数内部指定代码的异步版本,请使用 fb! 声明性宏。
🐞 自定义错误类型
#[ff(error_type = "MyCustomError")]
fn process(data: Vec<u8>) -> Result<usize, MyCustomError> {
// Your code here
}
🔄 fb!
- Flexi Block 或函数构建器
使用 fb!
丰富你的 Rust 工具箱,这是一个灵活的宏,旨在动态生成同步和异步函数或代码块。此宏旨在最小化冗余并提高代码清晰度,提供一种无缝的方式来构建可适应的代码结构。
✅ 同步函数
轻松创建同步函数
fb!(sync, greet, (name: String), -> String, {
format!("Hello, {}", name)
});
⚡ 异步函数
为需要等待的操作生成异步函数
fb!(async, fetch_data, (url: String), -> Result<String, reqwest::Error>, {
// Async fetch operation
});
🔄 返回闭包
在需要捕获周围环境或延迟执行的场景中
- 异步闭包
let async_closure = fb!(async, closure, {
// Async code here
});
// Usage
async_closure().await;
- 同步闭包
let sync_closure = fb!(sync, closure, {
// Sync code here
});
// Usage
sync_closure();
🚀 立即执行
立即执行代码块,无需定义单独的函数
- 异步块
let result = fb!(async, execute, {
// Immediate async execution
});
// Await the block if necessary
result.await;
- 同步块
fb!(sync, execute, {
// Immediate sync execution
});
💡 高级技巧
- 利用
fb!
进行条件编译,动态生成同步或异步函数,使您的代码更符合应用需求 🎛️。 - 通过将
fb!
与 Rust 的强大错误处理功能相结合,增强异步操作中的错误管理 🚦。
🐳 贡献
我们欢迎对 fb!
的改进。如果您有兴趣增强其功能或提出建议,请随时提交问题或拉取请求 🤝。您的反馈对改进此工具至关重要。
📃 许可证
本项目采用 MIT 许可证,鼓励开放协作和创新。