pub use crate::extract::validation::Validator;
pub fn validate_or_error<T: Validator>(value: T) -> Result<T, String> {
value.validate()?;
Ok(value)
}
pub fn not_empty(s: &str, field: &str) -> Result<(), String> {
if s.is_empty() {
Err(format!("{} cannot be empty", field))
} else {
Ok(())
}
}
pub fn in_range<T: PartialOrd + std::fmt::Debug>(
value: T,
min: T,
max: T,
field: &str,
) -> Result<(), String> {
if value < min || value > max {
Err(format!("{} must be between {:?} and {:?}", field, min, max))
} else {
Ok(())
}
}
pub fn is_email(s: &str, field: &str) -> Result<(), String> {
if !s.contains('@') || !s.contains('.') {
Err(format!("{} must be a valid email", field))
} else {
Ok(())
}
}