use std::io;
use thiserror::Error;
#[derive(Debug, Error)]
pub enum ClientError {
#[error("kindling daemon unavailable: {0}")]
Unavailable(String),
#[error("http transport error: {0}")]
Http(String),
#[error("daemon returned {status}: {message}")]
Api {
status: u16,
message: String,
},
#[error("schema version mismatch: client expected {expected}, daemon reports {actual}")]
SchemaMismatch {
expected: u32,
actual: u32,
},
#[error("failed to decode daemon response: {0}")]
Decode(String),
#[error("io error: {0}")]
Io(#[from] io::Error),
}