use std::io;
use crate::config::file::ConfigFileError;
#[derive(thiserror::Error, Debug)]
pub enum ServerStartError {
#[error("Unable to bind to {1}: {0}")]
Binding(#[source] io::Error, String),
#[cfg(feature = "lambda")]
#[error(transparent)]
Lambda(#[from] lambda_web::LambdaError),
#[cfg(feature = "metrics")]
#[error("could not initialize metrics: {0}")]
MetricsInitialisation(#[source] Box<dyn std::error::Error + Send + Sync>),
#[cfg(feature = "sprites")]
#[error(transparent)]
SpriteCatalog(#[from] martin_core::sprites::SpriteError),
#[error(transparent)]
Cors(#[from] ConfigFileError),
#[error(transparent)]
Io(#[from] io::Error),
}