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
//! Validatable trait for derive-based validation.
//!
//! Structs implementing this trait can be validated using their field attributes.
use crate;
/// Trait for types that can validate themselves using declarative rules.
///
/// This trait is typically derived using `#[derive(Validate)]`:
///
/// ```rust,ignore
/// use ferro_rs::Validate;
///
/// #[derive(Validate)]
/// struct CreateUserRequest {
/// #[validate(required, email)]
/// email: String,
///
/// #[validate(required, min(8))]
/// password: String,
/// }
///
/// // Usage
/// let request = CreateUserRequest { ... };
/// request.validate()?;
/// ```