Skip to main content

datum_agent/
error.rs

1use thiserror::Error;
2
3/// Result type used by `datum-agent`.
4pub type AgentResult<T> = Result<T, AgentError>;
5
6/// Errors returned by the embeddable agent and job registry.
7#[derive(Debug, Error)]
8pub enum AgentError {
9    #[error("registry actor is closed")]
10    RegistryClosed,
11    #[error("registry actor failed: {0}")]
12    Actor(String),
13    #[error("invalid job name")]
14    InvalidJobName,
15    #[error("invalid factory parameter {factory}.{parameter}={value:?}: {reason}")]
16    InvalidFactoryParameter {
17        factory: String,
18        parameter: String,
19        value: String,
20        reason: String,
21    },
22    #[error("job already exists: {0}")]
23    JobAlreadyExists(String),
24    #[error("job not found: {0}")]
25    JobNotFound(String),
26    #[error("job is already running: {0}")]
27    JobAlreadyRunning(String),
28    #[error("job is not running: {0}")]
29    JobNotRunning(String),
30    #[error("job does not support graceful drain: {0}")]
31    DrainUnsupported(String),
32    #[error("restart limit exceeded for job: {0}")]
33    RestartLimitExceeded(String),
34    #[error(transparent)]
35    Stream(#[from] datum::StreamError),
36}