ble_peripheral_rust/gatt/
characteristic.rs1use 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}