pub async fn validate_all_async<T, E, Fut, I>(
validations: I,
) -> Validation<E, Vec<T>>Expand description
Runs multiple async validations sequentially and collects all errors.
Unlike Result which short-circuits on the first error, this function
executes all validations and accumulates any errors that occur.
§Note
Validations are executed sequentially (not in parallel) to maintain
runtime neutrality. For parallel execution, use a runtime-specific
combinator like futures::join_all or tokio::join!.
§Example
ⓘ
use error_rail::prelude_async::*;
async fn validate_user(user: &User) -> Validation<ValidationError, ()> {
validate_all_async([
validate_email(&user.email),
validate_username(&user.username),
check_user_exists(&user.id),
])
.await
.map(|_| ())
}