diff options
Diffstat (limited to 'nrf-softdevice/src/ble/gatt_server.rs')
-rw-r--r-- | nrf-softdevice/src/ble/gatt_server.rs | 33 |
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>; |