9个版本
0.2.7 | 2024年2月11日 |
---|---|
0.2.6 | 2024年2月11日 |
0.1.0 | 2024年2月8日 |
#434 in 过程宏
每月 57 次下载
11KB
📦 Flexi Func 🚀
欢迎使用 Flexi Func - 一个旨在通过两个强大的宏:ff
(Flexi Func)和fb
(Flexi Block)或(函数构建器)🛠️来提升你的Rust编程体验的Rust包。
这些宏旨在简化并增强你编写同步和异步代码的方式,让你的Rust之旅更加顺畅和高效。
🎁 特性
ff
(Flexi Func):使用此过程宏首先标记你的异步函数,可选的自定义错误处理🌟。fb!
(Flexi Block)或(函数构建器):在同步函数内,使用fb!声明性宏编写你的(sync
或async
)版本。fb!
减少条件函数生成的样板代码🔄。
🚀 入门
要开始在项目中使用flexi_func,请将其添加到你的Cargo.toml
[dependencies]
flexi_func = "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 许可证,促进开放合作和创新。
依赖项
~1.5MB
~36K SLoC