edgefirst_client/
error.rs1use crate::Progress;
5use tokio::sync::{AcquireError, watch};
6
7#[derive(Debug)]
13pub enum Error {
14 IoError(std::io::Error),
16 ConfigError(config::ConfigError),
18 JsonError(serde_json::Error),
20 HttpError(reqwest::Error),
22 MaxRetriesExceeded(u32),
24 UrlParseError(url::ParseError),
26 RpcError(i32, String),
28 InvalidRpcId(String),
30 EnvError(std::env::VarError),
32 SemaphoreError(AcquireError),
34 JoinError(tokio::task::JoinError),
36 ProgressSendError(watch::error::SendError<Progress>),
38 ProgressRecvError(watch::error::RecvError),
40 StripPrefixError(std::path::StripPrefixError),
42 ParseIntError(std::num::ParseIntError),
44 InvalidResponse,
46 NotImplemented,
48 PartTooLarge,
50 InvalidAnnotationType(String),
52 MissingImages(String),
54 MissingAnnotations(String),
56 MissingLabel(String),
58 InvalidParameters(String),
60 FeatureNotEnabled(String),
62 EmptyToken,
64 InvalidToken,
66 TokenExpired,
68 Unauthorized,
70}
71
72impl From<std::io::Error> for Error {
73 fn from(err: std::io::Error) -> Self {
74 Error::IoError(err)
75 }
76}
77
78impl From<config::ConfigError> for Error {
79 fn from(err: config::ConfigError) -> Self {
80 Error::ConfigError(err)
81 }
82}
83
84impl From<serde_json::Error> for Error {
85 fn from(err: serde_json::Error) -> Self {
86 Error::JsonError(err)
87 }
88}
89
90impl From<reqwest::Error> for Error {
91 fn from(err: reqwest::Error) -> Self {
92 Error::HttpError(err)
93 }
94}
95
96impl From<url::ParseError> for Error {
97 fn from(err: url::ParseError) -> Self {
98 Error::UrlParseError(err)
99 }
100}
101
102impl From<std::env::VarError> for Error {
103 fn from(err: std::env::VarError) -> Self {
104 Error::EnvError(err)
105 }
106}
107
108impl From<AcquireError> for Error {
109 fn from(err: AcquireError) -> Self {
110 Error::SemaphoreError(err)
111 }
112}
113
114impl From<tokio::task::JoinError> for Error {
115 fn from(err: tokio::task::JoinError) -> Self {
116 Error::JoinError(err)
117 }
118}
119
120impl From<watch::error::SendError<Progress>> for Error {
121 fn from(err: watch::error::SendError<Progress>) -> Self {
122 Error::ProgressSendError(err)
123 }
124}
125
126impl From<watch::error::RecvError> for Error {
127 fn from(err: watch::error::RecvError) -> Self {
128 Error::ProgressRecvError(err)
129 }
130}
131
132impl From<std::path::StripPrefixError> for Error {
133 fn from(err: std::path::StripPrefixError) -> Self {
134 Error::StripPrefixError(err)
135 }
136}
137
138impl From<std::num::ParseIntError> for Error {
139 fn from(err: std::num::ParseIntError) -> Self {
140 Error::ParseIntError(err)
141 }
142}