1use thiserror::Error;
2
3pub type AgentResult<T> = Result<T, AgentError>;
5
6#[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}