1mod device_manager;
2pub mod devices;
3mod protocol;
4
5pub use device_manager::{DiscoveryOptions, discover_devices, discover_devices_with_options};
6
7use thiserror::Error;
8
9pub type Result<T> = std::result::Result<T, OpenSeriesError>;
10
11#[derive(Debug, Error)]
12pub enum OpenSeriesError {
13 #[error("permission denied; install the appropriate udev rule and reconnect the device")]
14 PermissionDenied,
15 #[error("timed out waiting for the device")]
16 Timeout,
17 #[error("device is disconnected")]
18 Disconnected,
19 #[error("unsupported feature: {0}")]
20 Unsupported(String),
21 #[error("invalid argument: {0}")]
22 InvalidArgument(String),
23 #[error("device protocol error: {0}")]
24 Protocol(String),
25 #[error("HID error: {0}")]
26 Hid(#[from] hidapi::HidError),
27}