async-web-client 0.6.3

async web client helpers
Documentation
use std::sync::Arc;

use crate::HttpError;
use http::uri::InvalidUri;
use thiserror::Error;

#[derive(Error, Debug, Clone)]
pub enum WsConnectError {
    #[error("invalid websocket upgrade request")]
    InvalidUpgradeRequest,
    #[error("invalid websocket upgrade response")]
    InvalidUpgradeResponse(Arc<http::Response<Box<dyn std::fmt::Debug + Send + Sync>>>),
    #[error("invalid uri: {0:?}")]
    InvalidUrl(Arc<InvalidUri>),
    #[error("websocket upgrade request error: {0:?}")]
    UpgradeRequestHttpError(#[from] HttpError),
    #[error("nknown gloo error: {0:?}")]
    Other(()),
}

impl From<InvalidUri> for WsConnectError {
    fn from(value: InvalidUri) -> Self {
        WsConnectError::InvalidUrl(Arc::new(value))
    }
}