#用户输入 #输入验证 #验证 #数据结构 #错误 #结构 #检查

validatron

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

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日

#1984解析器实现

Download history 43/week @ 2024-03-13 16/week @ 2024-03-20 19/week @ 2024-03-27 29/week @ 2024-04-03 42/week @ 2024-04-10 124/week @ 2024-04-17 24/week @ 2024-04-24 5/week @ 2024-05-01 2/week @ 2024-05-08 4/week @ 2024-05-15 4/week @ 2024-05-22 29/week @ 2024-05-29 29/week @ 2024-06-05 32/week @ 2024-06-12 104/week @ 2024-06-19 144/week @ 2024-06-26

每月下载量317

MIT 许可证

28KB
594 代码行

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.2–1.7MB
~40K SLoC