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
}
}