1个不稳定版本

0.1.0 2020年6月11日

#4#schemars

Download history 21/week @ 2024-03-30 2/week @ 2024-04-06

每月59次 下载
verify 中使用

MIT 许可证

14KB
322

状态

我没有时间完全完成和维护这个库,并且当前形式的JSON模式验证非常有限且效率极低。

我建议如果可能的话,不要使用它。

话虽如此,如果有人愿意继续它,我将很高兴授予维护者访问权限,甚至转让所有权。如果有人想要它,我也可以放弃crates.io上的名称。

Verify

Latest Version Documentation

Verify是另一个Rust的验证库。其主要概念包括可以验证任何结构值验证器。该想法基于Serde的模型,甚至还有一个可选的Serde兼容类型的包装器。

基本用法

库本身没有功能特性,它只提供trait定义和常用类型。

为了使用它,你需要编写或找到验证器,或者启用库的某个实现功能。目前官方支持的是Schemars。

以下是一个非常基本的示例,展示了如何使用Verify和Schemars创建一个自验证类型

(Schemars还没有提供在派生期间添加额外规则的方法,但将来会提供。)

#[derive(Default, Verify, Serialize, JsonSchema)]
#[verify(schemars, serde)]
struct ExampleStruct {
    example_value: i32,
}

fn main() {
    let example = ExampleStruct::default();
    
    // This will always return Ok(())
    assert!(example.verify().is_ok());
}

幕后发生了很多事情。有关更多详细信息,请访问文档

有关更多示例,请访问示例目录。

Cargo功能

默认情况下,只启用了smallvec功能。

serde

Serde集成,它启用验证实现Serialize的任何值。

smallvec

在库中使用smallvec替代部分类型的Vec

schemars

通过实现ValidatorVerifierVerify来启用Schemars集成。

依赖项

~1.5MB
~36K SLoC