wasmtime_environ/
demangling.rs1pub fn demangle_function_name(writer: &mut impl core::fmt::Write, name: &str) -> core::fmt::Result {
7 #[cfg(feature = "demangle")]
8 if let Ok(demangled) = rustc_demangle::try_demangle(name) {
9 return write!(writer, "{demangled}");
10 } else if name.starts_with("_Z")
11 && let Ok(symbol) = cpp_demangle::Symbol::new(name)
15 && let Ok(demangled) = symbol.demangle()
16 {
17 return write!(writer, "{demangled}");
18 }
19
20 write!(writer, "{name}")
21}
22
23pub fn demangle_function_name_or_index(
26 writer: &mut impl core::fmt::Write,
27 name: Option<&str>,
28 func_id: usize,
29) -> core::fmt::Result {
30 match name {
31 Some(name) => demangle_function_name(writer, name),
32 None => write!(writer, "<wasm function {func_id}>"),
33 }
34}