use std::{error::Error, fmt};
use adm::lifxi::http::Error as LifxiClientError;
#[derive(Debug)]
pub enum TurnError {
DeviceNotFound(String),
UnrecognizedState(String),
LifxiClientError(LifxiClientError),
}
impl From<LifxiClientError> for TurnError {
fn from(err: LifxiClientError) -> Self {
TurnError::LifxiClientError(err)
}
}
impl fmt::Display for TurnError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
use self::TurnError::*;
match self {
DeviceNotFound(device) => write!(f, "No devices found matching specifier {}", device),
UnrecognizedState(state) => write!(f, "Unrecognized target state {}", state),
LifxiClientError(err) => write!(f, "lifxi error: {}", err),
}
}
}
impl Error for TurnError {}