use std::net::SocketAddr;
use std::path::PathBuf;
#[derive(Debug, thiserror::Error)]
pub enum StandaloneError {
#[error("failed to open storage at {path}: {source}")]
Storage {
path: PathBuf,
#[source]
source: Box<dyn std::error::Error + Send + Sync>,
},
#[error("failed to bind peer transport on {addr}: {source}")]
PeerBind {
addr: SocketAddr,
#[source]
source: std::io::Error,
},
#[error("failed to bind admin server on {addr}: {source}")]
AdminBind {
addr: SocketAddr,
#[source]
source: std::io::Error,
},
#[error("driver bootstrap failed: {0}")]
Bootstrap(Box<dyn std::error::Error + Send + Sync>),
#[error("invalid configuration: {0}")]
Config(String),
#[error("failed to load TLS material from {path}: {source}")]
Tls {
path: std::path::PathBuf,
#[source]
source: Box<dyn std::error::Error + Send + Sync>,
},
}