Directly write to output instead of local String buffer

Previous measurements showed this to be a net loss in performance, but
further investigation shows that is likely to be a result of increased
syscalls in the test benchmark. Adjusting the benchmark to buffer the
output (e.g., with std::io::BufWriter) makes this a win, around 16%
faster.

Documentation on demangle_stream is updated to recommend buffering the
output writer.
1 file changed
tree: 46db48050b7316b503b2475551f03b314b94c279
  1. .github/
  2. crates/
  3. fuzz/
  4. src/
  5. .gitignore
  6. Cargo.toml
  7. LICENSE-APACHE
  8. LICENSE-MIT
  9. README.md
README.md

rustc-demangle

Demangling for Rust symbols, written in Rust.

Documentation

Usage

You can add this as a dependency via your Cargo.toml

[dependencies]
rustc-demangle = "0.1"

and then be sure to check out the crate documentation for usage.

Usage from non-Rust languages

You can also use this crate from other languages via the C API wrapper in the crates/capi directory. This can be build with:

$ cargo build -p rustc-demangle-capi --release

You'll then find target/release/librustc_demangle.a and target/release/librustc_demangle.so (or a different name depending on your platform). These objects implement the interface specified in crates/capi/include/rustc_demangle.h.

License

This project is licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in rustc-demangle you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.