Demangle Function

If you consider dlsym & co too hacky consider putting this in the bridging header:

unsigned char* swift_demangle(const unsigned char* name, long length, unsigned char* buffer, long* bufferSize, int flags);

Then you can call it from Swift normally:

func demangle(_ mangledName: String) -> String {
    let string = swift_demangle(mangledName, mangledName.count, nil, nil, 0)!
    let result = String(cString: string)
    string.deallocate()
    return result
}