lirays 0.1.1

Rust client for LiRAYS-SCADA over WebSocket + Protobuf
Documentation
use thiserror::Error;

/// Error type returned by the LiRAYS Rust client.
#[derive(Debug, Error)]
pub enum ClientError {
    /// WebSocket stream was closed before receiving the expected response.
    #[error("connection closed")]
    ConnectionClosed,
    /// A frame type or protobuf payload did not match the expected command flow.
    #[error("expected a response but got something else")]
    UnexpectedFrame,
    /// User-provided arguments are invalid for the requested operation.
    #[error("invalid input: {0}")]
    InvalidInput(&'static str),
    /// Server returned an application-level error status.
    #[error("operation failed: {0}")]
    OperationFailed(String),
    /// Timeout expired while waiting for a server response.
    #[error("timeout waiting for response")]
    Timeout,
    /// Underlying WebSocket transport error.
    #[error("websocket error: {0}")]
    Ws(#[from] tokio_tungstenite::tungstenite::Error),
    /// Failed to decode a protobuf payload.
    #[error("protobuf decode error: {0}")]
    Decode(#[from] prost::DecodeError),
}