respeaker 0.3.0

USB control library for Seeed ReSpeaker Mic Array v2.0 and XVF3800 (LEDs + DSP tuning), with reSpeaker Lite identification
Documentation
use thiserror::Error;

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

#[derive(Debug, Error)]
pub enum Error {
    #[error("ReSpeaker device not found (expected VID {vid:04x}, PIDs {pids})")]
    NotFound { vid: u16, pids: String },

    #[error(
        "permission denied opening ReSpeaker USB device; try sudo or a udev rule for 2886:0018 / 2886:0019 / 2886:001a"
    )]
    Access,

    #[error("operation not supported on this ReSpeaker model ({0})")]
    Unsupported(&'static str),

    #[error("unknown parameter `{0}`")]
    UnknownParameter(String),

    #[error("parameter `{0}` is read-only")]
    ReadOnly(String),

    #[error("parameter `{0}` is write-only")]
    WriteOnly(String),

    #[error("invalid parameter value: {0}")]
    InvalidValue(String),

    #[error("USB control status {code} ({name})")]
    ControlStatus { code: u8, name: &'static str },

    #[error("USB error: {0}")]
    Usb(#[from] rusb::Error),

    #[error("{0}")]
    Message(String),
}