fuel-streams 0.0.28

A library for working with streams of Fuel blockchain data
use fuel_streams_store::record::RecordEntityError;

#[derive(Debug, thiserror::Error)]
pub enum ClientError {
    #[error(transparent)]
    JsonToString(#[from] serde_json::Error),
    #[error(transparent)]
    UrlParse(#[from] url::ParseError),
    #[error(transparent)]
    ApiResponse(#[from] reqwest::Error),
    #[error(transparent)]
    WebSocketConnect(#[from] tokio_tungstenite::tungstenite::Error),
    #[error(transparent)]
    InvalidHeaderValue(#[from] reqwest::header::InvalidHeaderValue),
    #[error(transparent)]
    RecordEntity(#[from] RecordEntityError),
    #[error("Failed to parse server message: {0}")]
    InvalidMessage(String),
    #[error("Failed to parse message data to {0}")]
    InvalidData(String),
    #[error("Server error: {0}")]
    Server(String),
    #[error("Failed to parse host from URL")]
    HostParseFailed,
    #[error("Missing api key")]
    MissingApiKey,
    #[error("Missing write sink")]
    MissingWriteSink,
    #[error("Missing read stream")]
    MissingReadStream,
    #[error("Missing WebSocket connection")]
    MissingWebSocketConnection,
    #[error("Failed when parsing MessageData from string: {0}")]
    MessageData(String),
    #[error("WebSocket connection closed unexpectedly at frame: {0}")]
    ConnectionClosed(String),
}