engineio_rs/
error.rs

1use base64::DecodeError;
2use bytes::Bytes;
3use reqwest::header::{InvalidHeaderName, InvalidHeaderValue};
4use reqwest::Error as HttpError;
5use serde_json::Error as JsonError;
6use std::io::Error as IoError;
7use std::str::Utf8Error;
8use thiserror::Error;
9use tokio::sync::mpsc::error::SendError;
10use tungstenite::Error as WsError;
11
12use crate::Event;
13
14#[derive(Error, Debug)]
15#[non_exhaustive]
16pub enum Error {
17    #[error("Invalid packet type: {0}")]
18    InvalidPacketType(u8),
19    #[error("Invalid packet")]
20    InvalidPacket(),
21    #[error("Incomplete packet")]
22    IncompletePacket(),
23    #[error("Invalid base 64: {0}")]
24    InvalidBase64(#[from] DecodeError),
25    #[error("Invalid json: {0}")]
26    InvalidJson(#[from] JsonError),
27    #[error("Invalid header name")]
28    InvalidHeaderNameFromReqwest(#[from] InvalidHeaderName),
29    #[error("Invalid header value")]
30    InvalidHeaderValueFromReqwest(#[from] InvalidHeaderValue),
31    #[error("Invalid hand shake: {0}")]
32    InvalidHandShake(String),
33    #[error("Invalid url scheme: {0}")]
34    InvalidUrlScheme(String),
35    #[error("Io Error: {0}")]
36    IoError(#[from] IoError),
37    #[error("Websocket Error: {0}")]
38    WsError(#[from] WsError),
39    #[error("Utf8 error: {0}")]
40    Utf8Error(#[from] Utf8Error),
41    #[error("Http error: {0}")]
42    HttpError(#[from] HttpError),
43    #[error("Invalid http resposne status: {0}")]
44    InvalidHttpResponseStatus(u16),
45    #[error("Send error: {0}")]
46    SendError(#[from] SendError<Bytes>),
47    #[error("Event Send error: {0}")]
48    EventSendError(#[from] SendError<Event>),
49    #[error("Server not allow upgrading to websocket")]
50    IllegalWebsocketUpgrade(),
51    #[error("Illegal action before open")]
52    IllegalActionBeforeOpen(),
53}
54
55pub(crate) type Result<T> = std::result::Result<T, Error>;