summaryrefslogtreecommitdiff
path: root/nrf-softdevice/src/ble/gatt_server.rs
diff options
context:
space:
mode:
Diffstat (limited to 'nrf-softdevice/src/ble/gatt_server.rs')
-rw-r--r--nrf-softdevice/src/ble/gatt_server.rs33
1 files changed, 33 insertions, 0 deletions
diff --git a/nrf-softdevice/src/ble/gatt_server.rs b/nrf-softdevice/src/ble/gatt_server.rs
index 99d22dd..494b540 100644
--- a/nrf-softdevice/src/ble/gatt_server.rs
+++ b/nrf-softdevice/src/ble/gatt_server.rs
@@ -11,6 +11,9 @@ use crate::util::{get_flexarray, get_union_field, Portal};
use crate::RawError;
use crate::Softdevice;
+pub mod builder;
+pub mod characteristic;
+
pub struct Characteristic {
pub uuid: Uuid,
pub can_read: bool,
@@ -29,6 +32,36 @@ pub struct CharacteristicHandles {
pub sccd_handle: u16,
}
+#[derive(Debug, PartialEq, Eq, Clone, Copy)]
+#[cfg_attr(feature = "defmt", derive(defmt::Format))]
+pub struct ServiceHandle(u16);
+
+impl ServiceHandle {
+ pub fn handle(&self) -> u16 {
+ self.0
+ }
+}
+
+#[derive(Debug, PartialEq, Eq, Clone, Copy)]
+#[cfg_attr(feature = "defmt", derive(defmt::Format))]
+pub struct IncludedServiceHandle(u16);
+
+impl IncludedServiceHandle {
+ pub fn handle(&self) -> u16 {
+ self.0
+ }
+}
+
+#[derive(Debug, PartialEq, Eq, Clone, Copy)]
+#[cfg_attr(feature = "defmt", derive(defmt::Format))]
+pub struct DescriptorHandle(u16);
+
+impl DescriptorHandle {
+ pub fn handle(&self) -> u16 {
+ self.0
+ }
+}
+
pub trait Server: Sized {
type Event;
fn register(sd: &Softdevice) -> Result<Self, RegisterError>;