zisvalidator_derive

Crates.iozisvalidator_derive
lib.rszisvalidator_derive
version0.1.6
sourcesrc
created_at2021-04-10 11:01:59.379515
updated_at2021-05-09 07:46:27.984359
descriptionDerive macro for zisvalidator
homepage
repositoryhttps://github.com/zzhengzhuo/zisvalidator.git
max_upload_size
id381660
size36,790
zz (zzhengzhuo)

documentation

README

Zisvalidator

Zisvalidator is designed for validating input struct or enum in web or other scence.

Reference to Serde and Validator.

EXAMPLE

Validate for Struct and Enum

#[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 Arrribute

Container Attribute

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

    Validate type T by customer by function foo as Fn(t:T) -> Result<(),ValidatorError)

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

    Valid for tuple struct.For example,for type struct S(String,String),validate by function foo as Fn(t:&String) -> Result<(),ValidatorError>

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

    Valid for tuple struct.Validate for elements' range.

Field Attribute

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

    Validate for fields' range.

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

    Validate by function foo as Fn(t:&T) -> Result<(),ValidatorError>.

Variant Attribute

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

    Validate for variants' range.

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

    Validate by function foo as Fn(t:&T) -> Result<(),ValidatorError>.

Commit count: 48

cargo fmt