summaryrefslogtreecommitdiff
path: root/nrf-softdevice-macro
diff options
context:
space:
mode:
authorDario Nieuwenhuis <dirbaio@dirbaio.net>2020-11-09 23:49:07 +0100
committerDario Nieuwenhuis <dirbaio@dirbaio.net>2020-11-09 23:49:07 +0100
commit140bb3946d39aaacc6c0503557ab81c5e0ded85f (patch)
tree9a8cc849da310764fdfe4fda5c6d423b32c1aa5a /nrf-softdevice-macro
parent79287df811a74ea97b5a7f45e4598fd892c9caea (diff)
downloadnrf-softdevice-140bb3946d39aaacc6c0503557ab81c5e0ded85f.zip
gatt_server: fix macro breaking if missing imports.
Diffstat (limited to 'nrf-softdevice-macro')
-rw-r--r--nrf-softdevice-macro/src/lib.rs26
1 files changed, 14 insertions, 12 deletions
diff --git a/nrf-softdevice-macro/src/lib.rs b/nrf-softdevice-macro/src/lib.rs
index b98bde4..46c36c7 100644
--- a/nrf-softdevice-macro/src/lib.rs
+++ b/nrf-softdevice-macro/src/lib.rs
@@ -113,6 +113,8 @@ pub fn gatt_server(args: TokenStream, item: TokenStream) -> TokenStream {
let mut code_on_write = TokenStream2::new();
let mut code_event_enum = TokenStream2::new();
+ let ble = quote!(::nrf_softdevice::ble);
+
for ch in &chars {
let name_pascal = inflector::cases::pascalcase::to_pascal_case(&ch.name);
let char_name = format_ident!("{}", ch.name);
@@ -128,7 +130,7 @@ pub fn gatt_server(args: TokenStream, item: TokenStream) -> TokenStream {
let notify = ch.args.notify;
let indicate = ch.args.indicate;
let ty = &ch.ty;
- let ty_as_val = quote!(<#ty as ::nrf_softdevice::ble::GattValue>);
+ let ty_as_val = quote!(<#ty as #ble::GattValue>);
fields.push(syn::Field {
ident: Some(value_handle.clone()),
@@ -140,7 +142,7 @@ pub fn gatt_server(args: TokenStream, item: TokenStream) -> TokenStream {
code_register_chars.extend(quote_spanned!(ch.span=>
let #char_name = register_char(
- Characteristic {
+ #ble::gatt_server::Characteristic {
uuid: #uuid,
can_read: #read,
can_write: #write,
@@ -157,17 +159,17 @@ pub fn gatt_server(args: TokenStream, item: TokenStream) -> TokenStream {
));
code_impl.extend(quote_spanned!(ch.span=>
- fn #get_fn(&self) -> Result<#ty, gatt_server::GetValueError> {
+ 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 = gatt_server::get_value(sd, self.#value_handle, buf)?;
+ 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<(), gatt_server::SetValueError> {
+ 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);
- gatt_server::set_value(sd, self.#value_handle, buf)
+ #ble::gatt_server::set_value(sd, self.#value_handle, buf)
}
));
@@ -204,9 +206,9 @@ pub fn gatt_server(args: TokenStream, item: TokenStream) -> TokenStream {
&self,
conn: &Connection,
val: #ty,
- ) -> Result<(), gatt_server::NotifyValueError> {
+ ) -> Result<(), #ble::gatt_server::NotifyValueError> {
let buf = #ty_as_val::to_gatt(&val);
- gatt_server::notify_value(conn, self.#value_handle, buf)
+ #ble::gatt_server::notify_value(conn, self.#value_handle, buf)
}
));
@@ -236,16 +238,16 @@ pub fn gatt_server(args: TokenStream, item: TokenStream) -> TokenStream {
#code_impl
}
- impl ::nrf_softdevice::ble::gatt_server::Server for #struct_name {
+ impl #ble::gatt_server::Server for #struct_name {
type Event = #event_enum_name;
- fn uuid() -> Uuid {
+ fn uuid() -> #ble::Uuid {
#uuid
}
- fn register<F>(service_handle: u16, mut register_char: F) -> Result<Self, RegisterError>
+ fn register<F>(service_handle: u16, mut register_char: F) -> Result<Self, #ble::gatt_server::RegisterError>
where
- F: FnMut(Characteristic, &[u8]) -> Result<CharacteristicHandles, RegisterError>,
+ F: FnMut(#ble::gatt_server::Characteristic, &[u8]) -> Result<#ble::gatt_server::CharacteristicHandles, #ble::gatt_server::RegisterError>,
{
#code_register_chars