pub struct BleDevice {
pub name: String, // falls back to the address when unnamed
pub address: String, // XX:XX:XX:XX:XX:XX
pub rssi: Option<i64>, // dBm
pub uuids: Vec<String>,
}
pub struct BleDeviceInfo {
pub address: String,
pub connected: bool,
pub services: Vec<BleService>,
}
pub struct BleService {
pub uuid: String,
pub description: Option<String>,
pub characteristics: Vec<BleCharacteristic>,
}
pub struct BleCharacteristic {
pub uuid: String,
pub description: Option<String>,
pub properties: Vec<String>, // e.g. ["read", "notify"]
}