summaryrefslogtreecommitdiff
path: root/nrf-softdevice-macro
diff options
context:
space:
mode:
authorBob McWhirter <bmcwhirt@redhat.com>2022-05-16 13:26:11 -0400
committerBob McWhirter <bmcwhirt@redhat.com>2022-05-16 13:26:11 -0400
commit18688ae733d2e204bb0c5a810751fda07b94d443 (patch)
tree356a99673fbf0988cc4d1483e9d4009aceb17f26 /nrf-softdevice-macro
parent14eae6c04fcb9081532300cdc7b4d2904b329f0f (diff)
downloadnrf-softdevice-18688ae733d2e204bb0c5a810751fda07b94d443.zip
Add support for `write_without_response` on server characteristics.
Sets the appropriate flag in the Softdevice database.
Diffstat (limited to 'nrf-softdevice-macro')
-rw-r--r--nrf-softdevice-macro/src/lib.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/nrf-softdevice-macro/src/lib.rs b/nrf-softdevice-macro/src/lib.rs
index 3a73263..b0382d6 100644
--- a/nrf-softdevice-macro/src/lib.rs
+++ b/nrf-softdevice-macro/src/lib.rs
@@ -25,6 +25,8 @@ struct CharacteristicArgs {
#[darling(default)]
write: bool,
#[darling(default)]
+ write_without_response: bool,
+ #[darling(default)]
notify: bool,
#[darling(default)]
indicate: bool,
@@ -221,6 +223,7 @@ pub fn gatt_service(args: TokenStream, item: TokenStream) -> TokenStream {
let uuid = ch.args.uuid;
let read = ch.args.read;
let write = ch.args.write;
+ let write_without_response = ch.args.write_without_response;
let notify = ch.args.notify;
let indicate = ch.args.indicate;
let ty = &ch.ty;
@@ -240,6 +243,7 @@ pub fn gatt_service(args: TokenStream, item: TokenStream) -> TokenStream {
uuid: #uuid,
can_read: #read,
can_write: #write,
+ can_write_without_response: #write_without_response,
can_notify: #notify,
can_indicate: #indicate,
max_len: #ty_as_val::MAX_SIZE as _,
@@ -281,7 +285,7 @@ pub fn gatt_service(args: TokenStream, item: TokenStream) -> TokenStream {
));
}
- if write {
+ if write || write_without_response {
let case_write = format_ident!("{}Write", name_pascal);
code_event_enum.extend(quote_spanned!(ch.span=>
#case_write(#ty),