openseries-gg 1.0.0

Control supported SteelSeries headsets and mice from the command line or Rust
Documentation
mod device_manager;
pub mod devices;
mod protocol;

pub use device_manager::{DiscoveryOptions, discover_devices, discover_devices_with_options};

use thiserror::Error;

pub type Result<T> = std::result::Result<T, OpenSeriesError>;

#[derive(Debug, Error)]
pub enum OpenSeriesError {
    #[error("permission denied; install the appropriate udev rule and reconnect the device")]
    PermissionDenied,
    #[error("timed out waiting for the device")]
    Timeout,
    #[error("device is disconnected")]
    Disconnected,
    #[error("unsupported feature: {0}")]
    Unsupported(String),
    #[error("invalid argument: {0}")]
    InvalidArgument(String),
    #[error("device protocol error: {0}")]
    Protocol(String),
    #[error("HID error: {0}")]
    Hid(#[from] hidapi::HidError),
}