summaryrefslogtreecommitdiff
path: root/nrf-softdevice-macro
diff options
context:
space:
mode:
authorUlf Lilleengen <lulf@redhat.com>2021-10-11 12:14:12 +0200
committerUlf Lilleengen <lulf@redhat.com>2021-10-11 12:14:12 +0200
commit37585e1ffafbfa5b32c9136472ddb3f4ae136856 (patch)
tree4f9c6f790ac0a713ee8019e0548ae84dcdd206e4 /nrf-softdevice-macro
parent1f73a93a6ddce925ff749d63f4528e50e9efae02 (diff)
downloadnrf-softdevice-37585e1ffafbfa5b32c9136472ddb3f4ae136856.zip
Derive event variant from struct field name
Diffstat (limited to 'nrf-softdevice-macro')
-rw-r--r--nrf-softdevice-macro/src/lib.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/nrf-softdevice-macro/src/lib.rs b/nrf-softdevice-macro/src/lib.rs
index 4766954..f78e0e6 100644
--- a/nrf-softdevice-macro/src/lib.rs
+++ b/nrf-softdevice-macro/src/lib.rs
@@ -78,15 +78,19 @@ pub fn gatt_server(_args: TokenStream, item: TokenStream) -> TokenStream {
));
if let syn::Type::Path(p) = &field.ty {
+ let name_pascal = format_ident!(
+ "{}",
+ inflector::cases::pascalcase::to_pascal_case(&name.to_string())
+ );
let event_enum_ty = p.path.get_ident().unwrap();
let event_enum_variant = format_ident!("{}Event", event_enum_ty);
code_event_enum.extend(quote_spanned!(span=>
- #event_enum_ty(#event_enum_variant),
+ #name_pascal(#event_enum_variant),
));
code_on_write.extend(quote_spanned!(span=>
if let Some(e) = self.#name.on_write(handle, data) {
- return Some(#event_enum_name::#event_enum_ty(e));
+ return Some(#event_enum_name::#name_pascal(e));
}
));
}