pub struct CrcHelper {}
impl CrcHelper {
pub fn clean_name_from_name_upcase_underscore(name: &str) -> String {
let upcase_name = name.to_uppercase();
let clean_name: String = upcase_name
.chars()
.map(|c| match c {
'-' => '_', '0'..='9' => c,
'A'..='Z' => c,
'!'..='@' => c,
'['..='`' => c,
'{'..='~' => c,
_ => '_',
})
.collect();
clean_name
}
pub fn crc_from_name_upcase_underscore(name: &str) -> u32 {
let clean_name = CrcHelper::clean_name_from_name_upcase_underscore(name);
println!("clean_name: {:?}", clean_name);
const CRC32: crc::Crc<u32> = crc::Crc::<u32>::new(&crc::CRC_32_ISO_HDLC);
let crc = CRC32.checksum(clean_name.as_bytes());
crc
}
pub fn crc_from_name(name: &str) -> u32 {
let downcase_name = name.to_lowercase();
let clean_name: String = downcase_name
.chars()
.map(|c| match c {
'0'..='9' => c,
'a'..='z' => c,
'!'..='@' => c,
'['..='`' => c,
'{'..='~' => c,
_ => ' ',
})
.collect();
const CRC32: crc::Crc<u32> = crc::Crc::<u32>::new(&crc::CRC_32_ISO_HDLC);
let crc = CRC32.checksum(clean_name.as_bytes());
crc
}
}