use std::io;
#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("redis-server failed to start on port {port}")]
ServerStart {
port: u16,
},
#[error("sentinel failed to start on port {port}")]
SentinelStart {
port: u16,
},
#[error("cluster create failed:\nstdout: {stdout}\nstderr: {stderr}")]
ClusterCreate {
stdout: String,
stderr: String,
},
#[error("redis-cli {host}:{port} failed: {detail}")]
Cli {
host: String,
port: u16,
detail: String,
},
#[error("{message}")]
Timeout {
message: String,
},
#[error("no reachable sentinel")]
NoReachableSentinel,
#[error("{binary} not found on PATH")]
BinaryNotFound {
binary: String,
},
#[error(transparent)]
Io(#[from] io::Error),
}
pub type Result<T> = std::result::Result<T, Error>;