1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
use crate::consts::*;
pub fn validate_name(name: &[u8]) -> bool {
if name.len() > MAX_SIZE as usize {
return false;
}
let non_zero_bytes: Vec<u8> = name.iter().take_while(|&b| *b != 0).copied().collect();
for b in non_zero_bytes {
if !(b >= b'a' && b <= b'z')
&& !(b >= b'A' && b <= b'Z')
&& !(b >= b'0' && b <= b'9')
&& !(b == b'.' || b == b'/' || b == b'_' || b == b'+' || b == b'-')
{
return false;
}
}
true
}