use serde::{Deserialize, Serialize};
use thiserror::Error;
#[derive(Clone, Debug, Serialize, Deserialize)]
pub enum ReceiverSelector {
First,
BoltUid(String),
}
#[derive(Clone, Copy, PartialEq, Eq, Debug, Serialize, Deserialize)]
pub enum Click {
Left,
Right,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub enum PasskeyMethod {
Keyboard(String),
Pointer {
passkey: String,
clicks: Vec<Click>,
},
}
#[derive(Clone, Debug, Error)]
pub enum PairingError {
#[error("HID transport error: {0}")]
Hid(String),
#[error("no supported pairing-capable receiver found")]
ReceiverNotFound,
#[error("receiver register access failed: {0}")]
Register(String),
#[error("pairing timed out")]
Timeout,
#[error("receiver reported pairing error {0:#04x}")]
Device(u8),
#[error("pairing was cancelled")]
Cancelled,
#[error("malformed pairing notification ({0})")]
MalformedNotification(&'static str),
}