1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
//! # Example:
//!
//! ```ignore, no_run
//! use serde::Deserialize;
//!
//! // A trait that the Validate derive will impl
//! use validator::{Validate, ValidationError};
//!
//! #[derive(Debug, Validate, Deserialize)]
//! struct SignupData {
//! #[validate(email)]
//! mail: String,
//! #[validate(url)]
//! site: String,
//! #[validate(length(min = 1), custom(function = "validate_unique_username"))]
//! #[serde(rename = "firstName")]
//! first_name: String,
//! #[validate(range(min = 18, max = 20))]
//! age: u32,
//! }
//!
//! fn validate_unique_username(username: &str) -> Result<(), ValidationError> {
//! if username == "xXxShad0wxXx" {
//! // the value of the username will automatically be added later
//! return Err(ValidationError::new("terrible_username"));
//! }
//!
//! Ok(())
//! }
//!
//! match signup_data.validate() {
//! Ok(_) => (),
//! Err(e) => return e;
//! };
//! ```
//!
//! # Available Validations:
//! | Validation | Notes |
//! | ----------------------- | ----------------------------------------------------- |
//! | `email` | |
//! | `url` | |
//! | `length` | |
//! | `range` | |
//! | `must_match` | |
//! | `contains` | |
//! | `does_not_contain` | |
//! | `custom` | |
//! | `regex` | |
//! | `credit_card` | (Requires the feature `card` to be enabled) |
//! | `non_control_character` | (Required the feature `unic` to be enabled) |
//! | `required` | |
//!
//! [Checkout the project README of an in-depth usage description with examples.](https://github.com/Keats/validator/blob/master/README.md)
//!
//! # Installation:
//! Add the validator to the dependencies in the Cargo.toml file.
//!
//! ```toml
//! [dependencies]
//! validator = { version = "0.16", features = ["derive"] }
//! ```
pub use ValidateCreditCard;
pub use ValidateContains;
pub use ValidateDoesNotContain;
pub use ValidateEmail;
pub use ValidateIp;
pub use ValidateLength;
pub use validate_must_match;
pub use ValidateNonControlCharacter;
pub use ValidateRange;
pub use ;
pub use ValidateRequired;
pub use ValidateUrl;
pub use ;
pub use ;
pub use Validate;