wick_invocation_server/
error.rs1use thiserror::Error;
2
3#[derive(Error, Debug)]
5#[non_exhaustive]
6pub enum Error {
7 #[error(transparent)]
9 AddrParseError(#[from] std::net::AddrParseError),
10
11 #[error(transparent)]
13 TranportFailure(#[from] tonic::transport::Error),
14
15 #[error(transparent)]
17 RpcError(#[from] wick_rpc::Error),
18
19 #[error("Internal Error: {0}")]
21 InternalError(String),
22
23 #[error("{0}")]
25 CollectionError(String),
26
27 #[error("Component error: {0}")]
29 ComponentError(String),
30
31 #[error("Error sending output to channel")]
33 SendError,
34
35 #[error("General error: {0}")]
37 Other(String),
38}
39
40impl From<tokio::task::JoinError> for Error {
41 fn from(e: tokio::task::JoinError) -> Self {
42 Error::InternalError(format!("Tokio Error: {}", e))
43 }
44}
45
46impl From<std::io::Error> for Error {
47 fn from(e: std::io::Error) -> Self {
48 Error::InternalError(format!("IO Error: {}", e))
49 }
50}
51
52impl From<Box<dyn std::error::Error + Send + Sync>> for Error {
53 fn from(e: Box<dyn std::error::Error + Send + Sync>) -> Self {
54 Error::CollectionError(e.to_string())
55 }
56}