Marginally improve v0 error granularity and testing. (#54)

* v0: use `parse!` in `print_backref`.

* v0: stop using the `parser_mut` method outside of `parse!`.

* v0: replace `Invalid` error type with a two-case `ParseError`.

* v0: remove unnecessary escaping from fuzzer-generated testcases.

* v0: replace control characters with `.` in fuzzer-generated testcases.

* v0: move the (long) fuzzer-generated testcases into a separate file.

* Rework size limiting to not "leak" `fmt::Error`s to the user.
3 files changed
tree: 528703ae0ab212a105fa707a29ad23b1aed71c0d
  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.