优化校验,避免不必要的迭代

This commit is contained in:
李运家 2024-10-30 16:25:35 +08:00
parent c67884677c
commit a01536771e

View File

@ -12,24 +12,24 @@ pub fn validate_params(params: &impl Validate, local: &str) -> ResResult<ResData
Ok(_) => Result::Ok(ResData::none()), Ok(_) => Result::Ok(ResData::none()),
Err(err) => { Err(err) => {
let mut errors = vec![]; let mut errors = vec![];
for (_, err) in err.errors().iter() { for (_, err) in err.errors() {
match err { match err {
validator::ValidationErrorsKind::Struct(err) => { validator::ValidationErrorsKind::Struct(err) => {
err.field_errors().iter().for_each(|(_field, errs)| { for (_field, errs) in err.field_errors() {
errs.iter().for_each(|e| { for e in errs {
let msg = e.message.clone().unwrap_or_default(); let msg = e.message.clone().unwrap_or_default();
errors.push(message!(local, MessageId::from_str(msg.trim()).unwrap())) errors.push(message!(local, MessageId::from_str(msg.trim()).unwrap()));
}); }
}); }
}, },
validator::ValidationErrorsKind::List(err) => { validator::ValidationErrorsKind::List(err) => {
for (_, err) in err.iter() { for (_, err) in err.iter() {
err.field_errors().iter().for_each(|(_field, errs)| { for (_field, errs) in err.field_errors() {
errs.iter().for_each(|e| { for e in errs {
let msg = e.message.clone().unwrap_or_default(); let msg = e.message.clone().unwrap_or_default();
errors.push(message!(local, MessageId::from_str(msg.trim()).unwrap())) errors.push(message!(local, MessageId::from_str(msg.trim()).unwrap()));
}); }
}); }
} }
}, },
validator::ValidationErrorsKind::Field(err) => { validator::ValidationErrorsKind::Field(err) => {