use thiserror::Error;
#[derive(Debug, Error)]
#[non_exhaustive]
pub enum Error {
#[error("while talking to PostgreSQL")]
Database(#[from] tokio_postgres::Error),
#[error("while acquiring a pooled connection")]
Pool(#[from] deadpool_postgres::PoolError),
#[error("while building the connection pool")]
PoolBuild(#[from] deadpool_postgres::BuildError),
#[error("while applying migrations")]
Migration(#[from] refinery_core::Error),
#[error("while (de)serializing a job payload or carry")]
Serialization(#[from] serde_json::Error),
#[error("no handler registered for job kind {kind:?}")]
UnknownKind {
kind: String,
},
#[error("invalid configuration: {0}")]
Config(String),
}