#验证 #正则表达式 #JSON #构建 #日志 #过程宏 #获取器-设置器

darth-rust

DarthRust是一个旨在通过自动生成结构体操作的基本方法来提高开发者生产力的Rust过程宏库。它提供了一套宏,可以在任何结构体上派生,以提供访问和修改字段、执行计算和处理输入/输出操作的丰富API。它具有可变和不可变获取器、设置器、JSON转换方法以及用于调试的自定义打印机功能等特点,简化了与Rust应用程序中的结构体管理相关的样板代码。它还包括独特的正则表达式验证和范围检查方法,进一步扩展了其功能。该库强调易用性,只需添加相关crate和简单的派生属性即可发挥其全部潜力。

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过程宏 中排名

Download history 1974/week @ 2024-04-08 245/week @ 2024-04-15 26/week @ 2024-04-22 232/week @ 2024-04-29 6/week @ 2024-05-20 10/week @ 2024-06-03 181/week @ 2024-06-10 27/week @ 2024-06-17 61/week @ 2024-06-24 624/week @ 2024-07-01 5/week @ 2024-07-08 1/week @ 2024-07-22

683 每月下载量
用于 8 crate

MIT 许可证

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