use crate::types::{BleDevice, DeviceId};
use bytes::Bytes;
use uuid::Uuid;
#[derive(Debug, Clone, Default)]
pub struct CentralConfig {
pub restore_identifier: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum DisconnectCause {
LocalClose,
RemoteClose,
LinkLoss,
AdapterOff,
Gatt133,
Timeout,
Unknown(i32),
}
#[derive(Debug, Clone)]
pub enum CentralEvent {
AdapterStateChanged { powered: bool },
DeviceDiscovered(BleDevice),
DeviceConnected { device_id: DeviceId },
DeviceDisconnected {
device_id: DeviceId,
cause: DisconnectCause,
},
CharacteristicNotification {
device_id: DeviceId,
char_uuid: Uuid,
value: Bytes,
},
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum ScanMode {
#[default]
LowLatency,
LowPower,
}
#[derive(Debug, Clone, Default)]
pub struct ScanFilter {
pub services: Vec<Uuid>,
pub mode: ScanMode,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum WriteType {
WithResponse,
WithoutResponse,
}