Skip to main content

openseries/
lib.rs

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}