iron_os_service_api/
error.rs1use 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 {}