#validation #user-input #structure #derive #validatron

validatron_derive

为用户输入设计的用于数据结构验证的库

6个版本 (破坏性更新)

0.5.0 2022年10月18日
0.4.0 2022年10月17日
0.3.0 2022年10月13日
0.2.1 2021年2月18日
0.1.0 2021年1月7日

#128 in #user-input

Download history 49/week @ 2024-04-10 175/week @ 2024-04-17 25/week @ 2024-04-24 10/week @ 2024-05-01 9/week @ 2024-05-08 11/week @ 2024-05-15 7/week @ 2024-05-22 34/week @ 2024-05-29 30/week @ 2024-06-05 39/week @ 2024-06-12 108/week @ 2024-06-19 154/week @ 2024-06-26 45/week @ 2024-07-03 42/week @ 2024-07-10 69/week @ 2024-07-17 124/week @ 2024-07-24

305 每月下载量
用于 validatron

MIT 许可证

14KB
268

Validatron 构建状态 文档 最新版本

Validatron 是一个用于 Rust 的数据结构验证库,旨在在数据使用前进行广泛的完整性检查。

它深受 keats/validator crate 的启发,但具有不同的设计选择

  • 不快速失败,尽可能返回错误
  • 返回可序列化的错误类型
  • 提供易于扩展的验证器

示例

(查看 示例目录 以获取更多示例。)

use validatron::Validate;

#[derive(Debug, Validate)]
struct MyStruct {
    #[validatron(min = 42)]
    a: i64,
    #[validatron(max_len = 5)]
    b: Vec<u32>,
}

fn main() {
    let good = MyStruct {
        a: 666,
        b: vec![],
    };

    assert!(good.validate().is_ok());

    let bad = MyStruct {
        a: 1,
        b: vec![42; 25],
    };

    let result = bad.validate();
    assert!(result.is_err());

    println!("{:#?}", result);
}

许可证

validatron 在 MIT 许可证下授权;有关更多详细信息,请参阅 LICENSE 文件。

依赖项

~1.5MB
~36K SLoC