1个不稳定版本
0.1.0 | 2020年6月11日 |
---|
#4 在 #schemars
每月59次 下载
在 verify 中使用
14KB
322 行
状态
我没有时间完全完成和维护这个库,并且当前形式的JSON模式验证非常有限且效率极低。
我建议如果可能的话,不要使用它。
话虽如此,如果有人愿意继续它,我将很高兴授予维护者访问权限,甚至转让所有权。如果有人想要它,我也可以放弃crates.io上的名称。
Verify
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
smallvec
在库中使用smallvec替代部分类型的Vec
。
schemars
通过实现Validator
、Verifier
和Verify
来启用Schemars集成。
依赖项
~1.5MB
~36K SLoC