rust多个属性宏叠加_rust-参数校验宏实现

0x00 关于参数校验

开题: 在Spring开发中, 我们习惯了, 在参数Bean中添加JSR标准的参数校验Annotation,

那么, 我们在rust接口开发时, 同样也会面临这样的开发需求.

如果没有相应的开发框架, 那么接口的参数校验将会变得异常痛苦.

经过一个星期左右的学习和实践,终于完成此篇成果.

0x01 使用体验

使用体验上, 与Java开发并无二致.

#[derive(BeanCheck)]

struct UserDO {

#[Min(30)]

pub min_age: u32,

#[Max(20)]

#[Range(1, 100)]

pub age: u16,

#[Length(1, 13)]

pub username: String,

#[Pattern(r"^\d{1,5}$")]

pub password: String,

#[Email]

pub email: String,

pub mobile: String,

}

fn main() {

let u = UserDO {

min_age: 325,

age: 20,

username: "gorey".to_string(),

password: "12345".to_string(),

email: "aa@qq.com".to_string(),

mobile: "13812341234".to_string()

};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值