You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

53 lines
1.2 KiB

use diesel::result::Error as DslError;
use reqwest::Error as ReqError;
use serde::{Deserialize, Serialize};
use thiserror::Error;
use uuid::Uuid;
pub type UResult<T> = std::result::Result<T, UError>;
pub type ULocalResult<T> = std::result::Result<T, ULocalError>;
#[derive(Error, Debug, Serialize, Deserialize, Clone)]
pub enum UError {
#[error("Error: {0}")]
Raw(&'static str),
#[error("Connection error: {0}. Body: {1}")]
NetError(String, String),
#[error("Parse error")]
ParseError,
#[error("Job error: {0}")]
JobError(String),
#[error("Job is uncompleted yet")]
JobUncompleted,
#[error("Job cannot be ran on this platform. Expected: {0}, got: {1}")]
InsuitablePlatform(String, String),
#[error("Job {0} doesn't exist")]
NoJob(Uuid),
#[error("Error opening {0}: {1}")]
FilesystemError(String, String),
}
impl From<ReqError> for UError {
fn from(e: ReqError) -> Self {
UError::NetError(e.to_string(), String::new())
}
}
#[derive(Error, Debug)]
pub enum ULocalError {
#[error("{0} is not found")]
NotFound(String),
#[error("Error processing {0}")]
ProcessingError(String),
#[error(transparent)]
DBError(#[from] DslError),
}