pub struct ValidationBuilder { /* private fields */ }Expand description
Validation rules builder for complex validation scenarios
Implementations§
Source§impl ValidationBuilder
impl ValidationBuilder
Sourcepub fn field(self, rules: ValidationRules) -> Self
pub fn field(self, rules: ValidationRules) -> Self
Add rules for a field
Sourcepub fn validate(
&self,
data: &HashMap<String, String>,
) -> Result<(), Vec<ValidationError>>
pub fn validate( &self, data: &HashMap<String, String>, ) -> Result<(), Vec<ValidationError>>
Validate all fields
Sourcepub async fn validate_parallel(
&self,
data: &HashMap<String, String>,
) -> Result<(), Vec<ValidationError>>
pub async fn validate_parallel( &self, data: &HashMap<String, String>, ) -> Result<(), Vec<ValidationError>>
Validate all fields in parallel using async tasks
This method validates multiple fields concurrently, providing significant performance improvements for forms with many fields.
§Performance
- Sequential: O(n * avg_validation_time)
- Parallel: O(max(validation_times))
- Speedup: 2-4x for forms with 10+ fields
§Examples
let validator = ValidationBuilder::new()
.field(ValidationRules::for_field("email").add(IsEmail::validate))
.field(ValidationRules::for_field("username").add(NotEmpty::validate))
.field(ValidationRules::for_field("age").add(NotEmpty::validate));
let mut data = HashMap::new();
data.insert("email".to_string(), "user@example.com".to_string());
data.insert("username".to_string(), "john_doe".to_string());
data.insert("age".to_string(), "25".to_string());
// Validate all fields in parallel (2-4x faster)
validator.validate_parallel(&data).await?;Trait Implementations§
Auto Trait Implementations§
impl Freeze for ValidationBuilder
impl !RefUnwindSafe for ValidationBuilder
impl Send for ValidationBuilder
impl Sync for ValidationBuilder
impl Unpin for ValidationBuilder
impl !UnwindSafe for ValidationBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Injectable for T
impl<T> Injectable for T
Source§fn type_id_of() -> TypeIdwhere
Self: Sized,
fn type_id_of() -> TypeIdwhere
Self: Sized,
Returns the TypeId of this type (for internal use)
Source§fn type_name_of() -> &'static strwhere
Self: Sized,
fn type_name_of() -> &'static strwhere
Self: Sized,
Returns the type name for debugging