steeloxide 0.1.0

A rust library for interacting with SteelSeries devices.
Documentation
/// (c) ato
/// 
/// I only have Apex 3 TKL :p

#[derive(Debug, Clone, Copy)]
pub enum KeyboardDevice {
    None,
    Apex3TKL,
}

impl KeyboardDevice {
    pub fn from_product_id(product_id: u16) -> Self {
        match product_id {
            0x1622 => KeyboardDevice::Apex3TKL,
            _ => KeyboardDevice::None
        }
    }

    pub fn product_id(&self) -> u16 {
        match self {
            KeyboardDevice::None => 0,
            KeyboardDevice::Apex3TKL => 0x1622
        }
    }

    pub fn interface(&self) -> i32 {
        match self {
            KeyboardDevice::None => -1,
            KeyboardDevice::Apex3TKL => 1,
        }
    }

    pub fn get_zones(&self) -> usize {
        match self {
            KeyboardDevice::None => 0,
            KeyboardDevice::Apex3TKL => 8,
        }
    }
}