use anycms_core::{ApiResult, FieldError};
fn main() {
println!("=== Validation Errors Demo ===\n");
println!("1. validation_errors():");
let result: ApiResult<()> = ApiResult::validation_errors(vec![
FieldError::new("email", "邮箱格式不正确"),
FieldError::new("name", "用户名不能为空"),
FieldError::new("age", "年龄必须大于 18"),
]);
let json = serde_json::to_string_pretty(&result).unwrap();
println!("{}\n", json);
println!("2. with_error() chain:");
let result: ApiResult<()> = ApiResult::fail("提交失败")
.with_code(422)
.with_error("password", "密码长度至少 8 位")
.with_error("password", "必须包含数字");
let json = serde_json::to_string_pretty(&result).unwrap();
println!("{}\n", json);
println!("3. Single FieldError:");
let err = FieldError::new("username", "已被占用");
let json = serde_json::to_string_pretty(&err).unwrap();
println!("{}\n", json);
println!("4. Success response (no errors field):");
let result: ApiResult<String> = ApiResult::value("ok".to_string());
let json = serde_json::to_string_pretty(&result).unwrap();
println!("{}\n", json);
assert!(
serde_json::to_value(&result)
.unwrap()
.get("errors")
.is_none()
);
println!("Verified: 'errors' field absent in success response");
}