acta-maker-sdk 0.5.6

Rust SDK for Acta options market makers — WebSocket client, order signing, message types
Documentation
use thiserror::Error;

#[derive(Debug, Error)]
#[non_exhaustive]
pub enum WsClientError {
    #[error("websocket error: {0}")]
    WebSocket(#[from] tokio_tungstenite::tungstenite::Error),
    #[error("json error: {0}")]
    Json(#[from] serde_json::Error),
    #[error("read timeout")]
    Timeout,
    #[error("websocket connect timed out")]
    ConnectTimeout,
    #[error("connection closed")]
    ConnectionClosed,
    #[error("protocol error: {0}")]
    Protocol(String),
    #[error(transparent)]
    InvalidTransportConfig(#[from] WsTransportConfigError),
}

#[derive(Debug, Error, Clone, Copy, PartialEq, Eq)]
#[non_exhaustive]
pub enum WsTransportConfigError {
    #[error("connect timeout must be non-zero")]
    ZeroConnectTimeout,
    #[error("websocket message and frame limits must be non-zero")]
    ZeroMessageOrFrameLimit,
    #[error("maximum write buffer size must exceed write buffer size")]
    InvalidWriteBufferRange,
}

pub type WsResult<T> = Result<T, WsClientError>;