70个版本 (34个稳定版)
4.4.1 | 2024年7月3日 |
---|---|
4.3.2 | 2024年6月30日 |
3.0.8 | 2024年4月9日 |
2.1.0 | 2024年4月3日 |
0.2.5 | 2023年11月26日 |
943 在 过程宏 中排名
683 每月下载量
用于 8 crate
69KB
1.5K SLoC
Darth Rust
关于
DarthRust是一个旨在通过自动生成结构体操作的基本方法来提高开发者生产力的Rust过程宏库。它提供了一套宏,可以在任何结构体上派生,以提供访问和修改字段、执行计算和处理输入/输出操作的丰富API。它具有可变和不可变获取器、设置器、JSON转换方法以及用于调试的自定义打印机功能等特点,简化了与Rust应用程序中的结构体管理相关的样板代码。它还包括独特的正则表达式验证和范围检查方法,进一步扩展了其功能。该库强调易用性,只需添加相关crate和简单的派生属性即可发挥其全部潜力。
安装,特性 = ["full"]
cargo add darth-rust
cargo add regex
cargo add colorful
cargo add serde
cargo add serde_json
cargo add chrono
使用
示例
https://github.com/pas2rust/darth-rust/tree/master/tests
use darth_rust::DarthRust;
use serde::{Deserialize, Serialize};
#[derive(DarthRust, Debug, Serialize, Deserialize)]
pub struct User {
#[pattern(r"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$")]
pub id: String,
#[pattern(r"^[a-zA-Z]{3,20}\s[a-zA-Z]{3,20}$")]
pub name: String,
#[pattern(r"^[a-zA-Z]{6,20}")]
pub password: String,
#[pattern(r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$")]
pub email: String,
#[min(18)]
#[max(30)]
pub age: u8,
pub friends: Vec<User>,
}
贡献
...
许可证
MIT
依赖项
~2–14MB
~303K SLoC