use thiserror::Error;
pub type Result<T> = std::result::Result<T, EngineError>;
#[derive(Debug, Error)]
#[non_exhaustive]
pub enum EngineError {
#[error(transparent)]
Source(#[from] sources_core::SourceError),
#[error(transparent)]
Sink(#[from] sinks_core::SinkError),
#[error(transparent)]
Queue(#[from] queue_core::QueueError),
#[error("task failed: {0}")]
Task(String),
#[error(
"sink rejected {0} document(s) (e.g. {1}); stopping. \
set on-error=skip to quarantine rejected documents and continue"
)]
DocumentsRejected(usize, String),
}