/// Compute `numeric_string mod 97` using chunked arithmetic (handles arbitrary length).
pub(crate)fnmod97(numeric:&str)->u64{letmut remainder:u64=0;for ch in numeric.chars(){let digit = ch asu64-'0'asu64;
remainder =(remainder *10+ digit)%97;}
remainder
}/// Expand an alphanumeric string for MOD 97-10: digits stay, letters become A=10…Z=35.
////// Used by both IBAN and LEI check-digit verification.
pub(crate)fnalpha_to_numeric(s:&str)-> String{letmut out =String::with_capacity(s.len()*2);for c in s.chars(){if c.is_ascii_digit(){
out.push(c);}else{let n =(c asu32)-('A'asu32)+10;
out.push_str(&n.to_string());}}
out
}