ble_peripheral_rust/gatt/
characteristic.rs

1use super::{
2    descriptor::Descriptor,
3    properties::{AttributePermission, CharacteristicProperty},
4};
5use uuid::Uuid;
6
7#[derive(Debug, Clone)]
8pub struct Characteristic {
9    pub uuid: Uuid,
10    pub properties: Vec<CharacteristicProperty>,
11    pub permissions: Vec<AttributePermission>,
12    pub value: Option<Vec<u8>>,
13    pub descriptors: Vec<Descriptor>,
14}
15
16impl Default for Characteristic {
17    fn default() -> Self {
18        Characteristic {
19            uuid: Uuid::nil(),
20            properties: vec![
21                CharacteristicProperty::Read,
22                CharacteristicProperty::Write,
23                CharacteristicProperty::Notify,
24            ],
25            permissions: vec![
26                AttributePermission::Readable,
27                AttributePermission::Writeable,
28            ],
29            value: None,
30            descriptors: Vec::new(),
31        }
32    }
33}