diff options
author | Sébastien Duquette <ekse.0x@gmail.com> | 2018-11-10 16:22:59 -0500 |
---|---|---|
committer | Sébastien Duquette <ekse.0x@gmail.com> | 2018-11-10 16:22:59 -0500 |
commit | 499bb7557ff2c1c7d16a35143d86a845b19edfd5 (patch) | |
tree | 44aee885de4ee08f606a19c4a150ab189f92db4e /src | |
parent | e9638f613e0a7906beabf62238144ee47c28143c (diff) |
Add item_name parse callback.
Diffstat (limited to 'src')
-rw-r--r-- | src/callbacks.rs | 5 | ||||
-rw-r--r-- | src/ir/item.rs | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/callbacks.rs b/src/callbacks.rs index 71b98fc9..26f77338 100644 --- a/src/callbacks.rs +++ b/src/callbacks.rs @@ -55,4 +55,9 @@ pub trait ParseCallbacks: fmt::Debug + UnwindSafe { ) -> Option<String> { None } + + /// Allows to rename an item, replacing `_original_item_name`. + fn item_name(&self, _original_item_name: &str) -> Option<String> { + None + } } diff --git a/src/ir/item.rs b/src/ir/item.rs index 5f0ccc0b..a6ee4ff3 100644 --- a/src/ir/item.rs +++ b/src/ir/item.rs @@ -875,6 +875,11 @@ impl Item { let name = names.join("_"); + let name = ctx + .parse_callbacks() + .and_then(|callbacks| callbacks.item_name(&name)) + .unwrap_or(name); + ctx.rust_mangle(&name).into_owned() } |