use thiserror::Error;
#[derive(Debug, Clone, Error)]
pub enum ImError {
#[error("parse error: {0}")]
Parse(String),
#[error("unsupported websocket action: {0}")]
UnsupportedWsAction(String),
#[error("duplicate websocket action handler: {0}")]
DuplicateWsAction(String),
#[error("invalid websocket handler registration: registered {registered}, handler {handler}")]
InvalidWsHandlerRegistration { registered: String, handler: String },
#[error("incomplete websocket handler registry: expected {expected}, got {actual}")]
IncompleteWsHandlerRegistry { expected: usize, actual: usize },
#[error("invalid websocket frame: {0}")]
InvalidWsFrame(String),
#[error("invalid seq: expected {expected}, got {got}")]
InvalidSeq { expected: u64, got: u64 },
#[error("unknown channel: {0}")]
UnknownChannel(u64),
#[error("unknown correlation: {0}")]
UnknownCorrelation(u64),
#[error("serialize error: {0}")]
Serialize(String),
}