#枚举 #结构体 #验证 #输入 #Web #派生

zisvalidator

结构体和枚举验证器

7 个版本

0.1.6 2021 年 5 月 9 日
0.1.5 2021 年 4 月 20 日

#2616Rust 模式

MIT/Apache

7KB
83

Zisvalidator

Zisvalidator 设计用于在 Web 或其他场景中验证输入的结构体或枚举。

参考 SerdeValidator

示例

结构体和枚举验证

#[derive(Validate)]
struct S(String);               //validate tuple struct with 1 element
#[derive(Validate)]
struct S(String,u64,);          //validate tuple struct with mulitple elements
#[derive(Validate)]
struct S{                       //validate struct with fields
    str:String 
}

#[derive(Validate)]
enum E{                         //validate enum
    S(String),                  //validate tuple varient with 1 element
    Tuple(String,String,),      //validate tuple varient with multiple element
    Nested{                     //validate varient with fields
        field:String,
    }
}

验证属性

容器属性

  • #[validate(schema = "foo")]

    通过函数 foo 验证类型 T,该函数作为 Fn(t:T) -> Result<(),ValidatorError)

  • #[validate(custom = "foo")]

    适用于元组结构体。例如,对于类型 struct S(String,String),通过函数 foo 验证,作为 Fn(t:&String) -> Result<(),ValidatorError>

  • #[validate(range = "start..end")]

    适用于元组结构体。验证元素的取值范围。

字段属性

  • #[validate(range = "start..end")]

    验证字段的取值范围。

  • #[validate(custom = "foo")]

    通过函数 foo 验证,作为 Fn(t:&T) -> Result<(),ValidatorError>.

变体属性

  • #[validate(range = "start..end")]

    验证变体的取值范围。

  • #[validate(custom = "foo")]

    通过函数 foo 验证,作为 Fn(t:&T) -> Result<(),ValidatorError>.

依赖关系

~225KB