summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJake Merdich <jake@merdich.com>2022-02-03 11:02:30 -0500
committerEmilio Cobos Álvarez <emilio@crisal.io>2022-02-18 19:32:08 +0100
commitb3e6a9882f56b5e9e65bf38c1a2c9ccac2995d37 (patch)
tree08aef7f31b8590932116e31378f4f15215963819
parent71fe5fdcb657470b7c2e1b841eaea4660d4ccc40 (diff)
Allow fully-qualified derives
Adding a custom derive like "serde::Deserialize" results in a panic complaining that it is not a valid Ident. Derive params are not identifiers, so treat it as a token stream instead.
-rw-r--r--bindgen-integration/build.rs2
-rw-r--r--src/codegen/helpers.rs2
2 files changed, 2 insertions, 2 deletions
diff --git a/bindgen-integration/build.rs b/bindgen-integration/build.rs
index 77ea64b5..d0ec3bc0 100644
--- a/bindgen-integration/build.rs
+++ b/bindgen-integration/build.rs
@@ -128,7 +128,7 @@ impl ParseCallbacks for MacroCallback {
]
} else if name == "MyOrderedEnum" {
vec![
- "PartialOrd".into(),
+ "std::cmp::PartialOrd".into(),
]
} else {
vec![]
diff --git a/src/codegen/helpers.rs b/src/codegen/helpers.rs
index 2ce6894f..75c169c6 100644
--- a/src/codegen/helpers.rs
+++ b/src/codegen/helpers.rs
@@ -30,7 +30,7 @@ pub mod attributes {
let which_ones = which_ones
.iter()
.cloned()
- .map(|one| Ident::new(one, Span::call_site()));
+ .map(|one| TokenStream::from_str(one).expect("derive to be valid"));
quote! {
#[derive( #( #which_ones ),* )]
}