wireband-edge 0.4.1

Lightweight Wire.Band client — semantic data middleware for any domain (IoT, AI/ML, DeFi, legal, geospatial, supply chain, and more)
Documentation
use thiserror::Error;

#[derive(Debug, Error)]
pub enum WireBandError {
    #[error("HTTP request failed: {0}")]
    Http(#[from] reqwest::Error),

    #[error("JSON error: {0}")]
    Json(#[from] serde_json::Error),

    #[error("Connection error: {0}")]
    Connection(String),

    #[error("Frame too short (len={0}, need ≥2)")]
    FrameTooShort(usize),

    #[error("Frame payload is not valid UTF-8: {0}")]
    FrameEncoding(#[from] std::str::Utf8Error),

    #[cfg(feature = "mqtt")]
    #[error("MQTT error: {0}")]
    Mqtt(String),

    #[cfg(feature = "modbus")]
    #[error("Modbus error: {0}")]
    Modbus(String),

    #[cfg(feature = "serial")]
    #[error("Serial error: {0}")]
    Serial(String),

    #[cfg(feature = "ble")]
    #[error("BLE error: {0}")]
    Ble(String),

    #[cfg(feature = "coap")]
    #[error("CoAP error: {0}")]
    Coap(String),

    #[cfg(feature = "crypto")]
    #[error("Crypto error: {0}")]
    Crypto(#[from] crate::crypto::CryptoError),
}

pub type Result<T> = std::result::Result<T, WireBandError>;