Crate undname

source ·
Expand description

§Overview

undname is a purely Rust-based implementation of a Microsoft symbol demangler. It functions as an alternative to msvc-demangler and Microsoft’s own UnDecorateSymbolName. It is closely based off of LLVM’s own llvm-undname and boasts competitive performance and better accuracy when compared to existing implementations.

The latest development docs are available at: https://ryan-rsm-mckenzie.github.io/undname-rs/undname/index.html

The stable release docs are available at: https://docs.rs/undname/latest/undname/

Changelogs are available at: https://github.com/Ryan-rsm-McKenzie/undname-rs/releases

§Example

use undname::Flags;
let result = undname::demangle(b"?world@@YA?AUhello@@XZ".into(), Flags::default()).unwrap();
assert_eq!(result, b"struct hello __cdecl world(void)"[..]);

Structs§

  • A wrapper for &[u8] that provides convenient string oriented trait impls.
  • A wrapper for Vec<u8> that provides convenient string oriented trait impls.
  • Flags control how types are printed during demangling. See each flag for more info on what exactly they do.

Enums§

Traits§

  • A trait that extends &[u8] with string oriented methods.
  • A trait that extends Vec<u8> with string oriented methods.

Functions§

Type Aliases§