use crate::{core::traits::Validator, prelude::*};
#[validator]
pub struct Sha256 {}
impl Validator<str> for Sha256 {
fn validate(&self, s: &str) -> Result<(), String> {
if s.len() != 64 {
return Err(format!("must be 64 characters, got {}", s.len()));
}
if !s.chars().all(|c| c.is_ascii_hexdigit()) {
return Err("must contain only hexadecimal characters (0-9, a-f)".to_string());
}
Ok(())
}
}