Find a descriptor by UUID on a specific characteristic.
(
peripheral: &btleplug::platform::Peripheral,
char_uuid: uuid::Uuid,
descriptor_uuid: uuid::Uuid,
)
| 5 | |
| 6 | /// Find a descriptor by UUID on a specific characteristic. |
| 7 | pub fn find_descriptor( |
| 8 | peripheral: &btleplug::platform::Peripheral, |
| 9 | char_uuid: uuid::Uuid, |
| 10 | descriptor_uuid: uuid::Uuid, |
| 11 | ) -> btleplug::api::Descriptor { |
| 12 | use btleplug::api::Peripheral as _; |
| 13 | let services = peripheral.services(); |
| 14 | for service in &services { |
| 15 | for char in &service.characteristics { |
| 16 | if char.uuid == char_uuid { |
| 17 | for desc in &char.descriptors { |
| 18 | if desc.uuid == descriptor_uuid { |
| 19 | return desc.clone(); |
| 20 | } |
| 21 | } |
| 22 | } |
| 23 | } |
| 24 | } |
| 25 | panic!( |
| 26 | "descriptor {} not found on characteristic {}", |
| 27 | descriptor_uuid, char_uuid |
| 28 | ); |
| 29 | } |