6个版本

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

#111 in #validate


zisvalidator中使用

MIT/Apache

37KB
870

Zisvalidator

Zisvalidator旨在验证网络或其他场景中的输入结构体或枚举。

参考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>

依赖关系

~1.5MB
~35K SLoC