Skip to main content

ValidateRules

Derive Macro ValidateRules 

Source
#[derive(ValidateRules)]
{
    // Attributes available to this derive:
    #[rule]
}
Expand description

Derive macro for declarative struct validation using Ferro’s rules

Generates Validatable trait implementation from field attributes. Validation rules are co-located with the struct definition.

This uses Ferro’s Laravel-style validation rules (required(), email(), etc.) rather than the external validator crate.

§Example

use ferro::ValidateRules;

#[derive(ValidateRules)]
struct CreateUserRequest {
    #[rule(required, email)]
    email: String,

    #[rule(required, min(8))]
    password: String,

    #[rule(required, integer, min(18))]
    age: Option<i32>,
}

// Usage
let request = CreateUserRequest { ... };
request.validate()?;