#[derive(Debug, thiserror::Error)]
pub enum ConnectError {
#[error("database connection failed")]
Database(#[source] sqlx::Error),
#[error("migration failed")]
Migration(#[source] sqlx::migrate::MigrateError),
}
#[derive(Debug, thiserror::Error)]
pub enum EnqueueError {
#[error("failed to serialize payload")]
Serialize(#[source] rmp_serde::encode::Error),
#[error("database error")]
Database(#[source] sqlx::Error),
#[error("queue not found")]
QueueNotFound,
}
#[derive(Debug, thiserror::Error)]
pub enum FetchError {
#[error("query failed")]
Query(#[source] sqlx::Error),
#[error("failed to deserialize payload for job {0}")]
Deserialize(uuid::Uuid, #[source] rmp_serde::decode::Error),
}
#[derive(Debug, thiserror::Error)]
pub enum ListError {
#[error("query failed")]
Query(#[source] sqlx::Error),
}
#[derive(Debug, thiserror::Error)]
pub enum ModifyError {
#[error("database error")]
Database(#[source] sqlx::Error),
#[error("queue not found")]
QueueNotFound,
#[error("queue already exists")]
QueueAlreadyExists,
#[error("transform failed")]
Transform(#[source] anyhow::Error),
}
#[derive(Debug, thiserror::Error)]
pub enum AckError {
#[error("failed to update job")]
Database(#[source] sqlx::Error),
#[error("lock lost")]
LockLost,
}
#[derive(Debug, thiserror::Error)]
pub enum ReapError {
#[error("database error")]
Database(#[source] sqlx::Error),
}
#[derive(Debug, thiserror::Error)]
pub enum ResolveIdError {
#[error("query failed")]
Query(#[source] sqlx::Error),
#[error("no job matched '{0}'")]
NotFound(String),
#[error("'{suffix}' is ambiguous, matches: {matches}")]
Ambiguous {
suffix: String,
matches: String,
},
}
#[derive(Debug, thiserror::Error)]
pub enum AdvanceError {
#[error("database error")]
Database(#[source] sqlx::Error),
#[error("advance failed (lock lost or queue not found)")]
Failed,
}