Rust 结构的简单验证
Macros 1.1 自定义派生,以借鉴 marshmallow 的方式简化结构验证 Django 验证器。 安装:
validator = { version = "0.20", features = ["derive"] }一个简单的示例:
…如果 Option<_> 字段中的选项为 Some,则会对包含的类型执行验证。validate()
该方法返回 Result<(), ValidationErrors>。如果结果无效, ValidationErrors 实例包含以下信息:
一个错误映射图,其中错误的名称与结构体的字段名称对应。错误可以以三种方式表示,如由下面的说明所述:
ValidationErrorsKind 枚举:
#[derive(Debug, Serialize, Clone, PartialEq)]
#[serde(untagged)]
pub enum ValidationErrorsKind {
Struct(Box<ValidationErrors>),
List(BTreeMap<usize, Box<ValidationErrors>>),
Field(Vec<ValidationError>),
}在上述简单的示例中,任何错误都将具有 Field(Vec<ValidationError>) 类型,其中单个 ValidationError 具有以下结构:
在单个嵌套结构体(本示例中的contact_details字段)中找到的任何错误,将以Struct(Box<ValidationErrors>)类型返回到父结构的ValidationErrors结果中。
[dependencies]
暂无开放 Issues,或尚未同步最近议题。