1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
use crate::job::{JobResult, JobStatus};
#[derive(Clone, Debug, PartialEq)]
pub enum MessageError {
Amqp(lapin::Error),
RuntimeError(String),
ParameterValueError(String),
ProcessingError(JobResult),
RequirementsError(String),
NotImplemented(),
}
impl MessageError {
pub fn from(error: std::io::Error, job_result: JobResult) -> Self {
let result = job_result
.with_status(JobStatus::Error)
.with_message(&format!("IO Error: {}", error.to_string()));
MessageError::ProcessingError(result)
}
}
impl From<lapin::Error> for MessageError {
fn from(error: lapin::Error) -> Self {
MessageError::Amqp(error)
}
}
pub type Result<T> = std::result::Result<T, MessageError>;