diff options
author | Ulf Lilleengen <lulf@redhat.com> | 2021-10-11 12:14:12 +0200 |
---|---|---|
committer | Ulf Lilleengen <lulf@redhat.com> | 2021-10-11 12:14:12 +0200 |
commit | 37585e1ffafbfa5b32c9136472ddb3f4ae136856 (patch) | |
tree | 4f9c6f790ac0a713ee8019e0548ae84dcdd206e4 /nrf-softdevice-macro | |
parent | 1f73a93a6ddce925ff749d63f4528e50e9efae02 (diff) | |
download | nrf-softdevice-37585e1ffafbfa5b32c9136472ddb3f4ae136856.zip |
Derive event variant from struct field name
Diffstat (limited to 'nrf-softdevice-macro')
-rw-r--r-- | nrf-softdevice-macro/src/lib.rs | 8 |
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)); } )); } |