summaryrefslogtreecommitdiff
path: root/nrf-softdevice-macro
diff options
context:
space:
mode:
authorUlf Lilleengen <ulf.lilleengen@gmail.com>2021-10-07 09:38:50 +0200
committerUlf Lilleengen <ulf.lilleengen@gmail.com>2021-10-07 09:38:50 +0200
commit21617efac6256f1d0905dd4c9385507c03c56f97 (patch)
treef4825c5b1e9518da1db17c43349d27b99581e011 /nrf-softdevice-macro
parent4d4123639336e23088eeb53b54d90d6f8d618195 (diff)
downloadnrf-softdevice-21617efac6256f1d0905dd4c9385507c03c56f97.zip
Make fn have the same visibility as struct fields
Diffstat (limited to 'nrf-softdevice-macro')
-rw-r--r--nrf-softdevice-macro/src/lib.rs14
1 files changed, 9 insertions, 5 deletions
diff --git a/nrf-softdevice-macro/src/lib.rs b/nrf-softdevice-macro/src/lib.rs
index 5b10e03..4fdc4c2 100644
--- a/nrf-softdevice-macro/src/lib.rs
+++ b/nrf-softdevice-macro/src/lib.rs
@@ -36,6 +36,7 @@ struct Characteristic {
ty: syn::Type,
args: CharacteristicArgs,
span: Span,
+ vis: syn::Visibility,
}
#[proc_macro_attribute]
@@ -90,6 +91,7 @@ pub fn gatt_server(args: TokenStream, item: TokenStream) -> TokenStream {
ty: field.ty.clone(),
args,
span: field.ty.span(),
+ vis: field.vis.clone(),
});
false
@@ -122,6 +124,7 @@ pub fn gatt_server(args: TokenStream, item: TokenStream) -> TokenStream {
let get_fn = format_ident!("{}_get", ch.name);
let set_fn = format_ident!("{}_set", ch.name);
let notify_fn = format_ident!("{}_notify", ch.name);
+ let fn_vis = ch.vis.clone();
let uuid = ch.args.uuid;
let read = ch.args.read;
@@ -159,14 +162,14 @@ pub fn gatt_server(args: TokenStream, item: TokenStream) -> TokenStream {
));
code_impl.extend(quote_spanned!(ch.span=>
- fn #get_fn(&self) -> Result<#ty, #ble::gatt_server::GetValueError> {
+ #fn_vis fn #get_fn(&self) -> Result<#ty, #ble::gatt_server::GetValueError> {
let sd = unsafe { ::nrf_softdevice::Softdevice::steal() };
let buf = &mut [0u8; #ty_as_val::MAX_SIZE];
let size = #ble::gatt_server::get_value(sd, self.#value_handle, buf)?;
Ok(#ty_as_val::from_gatt(&buf[..size]))
}
- fn #set_fn(&self, val: #ty) -> Result<(), #ble::gatt_server::SetValueError> {
+ #fn_vis fn #set_fn(&self, val: #ty) -> Result<(), #ble::gatt_server::SetValueError> {
let sd = unsafe { ::nrf_softdevice::Softdevice::steal() };
let buf = #ty_as_val::to_gatt(&val);
#ble::gatt_server::set_value(sd, self.#value_handle, buf)
@@ -202,7 +205,7 @@ pub fn gatt_server(args: TokenStream, item: TokenStream) -> TokenStream {
let case_disabled = format_ident!("{}NotificationsDisabled", name_pascal);
code_impl.extend(quote_spanned!(ch.span=>
- fn #notify_fn(
+ #fn_vis fn #notify_fn(
&self,
conn: &#ble::Connection,
val: #ty,
@@ -231,7 +234,7 @@ pub fn gatt_server(args: TokenStream, item: TokenStream) -> TokenStream {
let uuid = args.uuid;
struct_fields.named = syn::punctuated::Punctuated::from_iter(fields);
- let visibility = struc.vis.clone();
+ let struc_vis = struc.vis.clone();
let result = quote! {
#struc
@@ -264,7 +267,7 @@ pub fn gatt_server(args: TokenStream, item: TokenStream) -> TokenStream {
}
}
- #visibility enum #event_enum_name {
+ #struc_vis enum #event_enum_name {
#code_event_enum
}
};
@@ -323,6 +326,7 @@ pub fn gatt_client(args: TokenStream, item: TokenStream) -> TokenStream {
ty: field.ty.clone(),
args,
span: field.ty.span(),
+ vis: field.vis.clone(),
});
false