31 lines
1.2 KiB
Rust
31 lines
1.2 KiB
Rust
use serde_json::Value;
|
|
use thiserror::Error;
|
|
|
|
#[derive(Debug, Error)]
|
|
pub enum WebsocketAdapterError {
|
|
#[error("invalid websocket url: {url}")]
|
|
InvalidUrl { url: String },
|
|
#[error("invalid websocket header name {header}")]
|
|
InvalidHeaderName { header: String },
|
|
#[error("invalid websocket header value for {header}")]
|
|
InvalidHeaderValue { header: String },
|
|
#[error("invalid websocket subprotocol {value}")]
|
|
InvalidSubprotocol { value: String },
|
|
#[error("websocket connect failed")]
|
|
Connect(#[from] tokio_tungstenite::tungstenite::Error),
|
|
#[error("websocket window expired before collecting any items")]
|
|
WindowExpired,
|
|
#[error("websocket stream produced malformed frame payload")]
|
|
InvalidFramePayload,
|
|
#[error("websocket endpoint returned close frame before collection completed")]
|
|
ClosedEarly,
|
|
#[error("websocket reconnect policy exhausted")]
|
|
ReconnectExhausted,
|
|
#[error("websocket upstream returned invalid subscribe payload")]
|
|
InvalidSubscribePayload,
|
|
#[error("websocket upstream returned invalid unsubscribe payload")]
|
|
InvalidUnsubscribePayload,
|
|
#[error("websocket upstream status {status}")]
|
|
UnexpectedStatus { status: u16, body: Value },
|
|
}
|