pub fn get_arm64ec_mangled_function_name(name: &str) -> Result<Option<String>, ()> {
let first_char = name.chars().next().unwrap();
if first_char != '?' {
if first_char == '#' {
return Ok(None);
}
return Ok(Some(format!("#{name}")));
}
if name.contains("$$h") {
return Ok(None);
}
Err(())
}
pub fn get_arm64ec_demangled_function_name(name: &str) -> Option<String> {
let first_char = name.chars().next().unwrap();
if first_char == '#' {
return Some(name[1..].to_string());
}
if first_char != '?' {
return None;
}
match name.split_once("$$h") {
Some((first, second)) if !second.is_empty() => Some(format!("{first}{second}")),
_ => None,
}
}