iron_os_service_api/
error.rs

1use std::{error, fmt};
2
3use stream::error::RequestError;
4pub use stream_api::error::{ApiError, Error as ErrorTrait};
5use stream_api::{error::MessageError, FromMessage, IntoMessage};
6
7use serde::{Deserialize, Serialize};
8
9pub type Result<T> = std::result::Result<T, Error>;
10
11#[derive(Debug, Serialize, Deserialize, IntoMessage, FromMessage)]
12#[message(json)]
13pub enum Error {
14	#[deprecated]
15	ConnectionClosed,
16	#[deprecated]
17	RequestDropped,
18	Internal(String),
19	Request(String),
20	#[deprecated]
21	Response(String),
22	Other(String),
23}
24
25impl Error {
26	pub fn internal_display(e: impl fmt::Display) -> Self {
27		Self::Internal(e.to_string())
28	}
29}
30
31impl ApiError for Error {
32	fn from_message_error(e: MessageError) -> Self {
33		Self::Request(e.to_string())
34	}
35
36	fn from_request_error(e: RequestError) -> Self {
37		Self::Request(e.to_string())
38	}
39}
40
41impl fmt::Display for Error {
42	fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
43		fmt::Debug::fmt(self, f)
44	}
45}
46
47impl error::Error for Error {}