srtool_lib/
error.rs

1use std::string::FromUtf8Error;
2use thiserror::Error;
3
4pub type Result<T> = std::result::Result<T, SrtoolLibError>;
5
6#[derive(Error, Debug)]
7pub enum SrtoolLibError {
8	#[error("Unknown container engine `{0:?}`")]
9	UnknownContainerEngine(Option<String>),
10
11	#[error("Error setting Ctrl-C handler")]
12	CtrlCSetup,
13
14	#[error("IO error: {0}")]
15	IO(std::io::Error),
16
17	#[error("Http request error: {0}")]
18	HttpRequest(Box<ureq::Error>),
19
20	#[error("UTF8 error: {0}")]
21	UTF8(std::string::FromUtf8Error),
22}
23
24impl From<ureq::Error> for SrtoolLibError {
25	fn from(error: ureq::Error) -> Self {
26		SrtoolLibError::HttpRequest(Box::new(error))
27	}
28}
29
30impl From<std::io::Error> for SrtoolLibError {
31	fn from(error: std::io::Error) -> Self {
32		SrtoolLibError::IO(error)
33	}
34}
35
36impl From<FromUtf8Error> for SrtoolLibError {
37	fn from(error: FromUtf8Error) -> Self {
38		SrtoolLibError::UTF8(error)
39	}
40}