async_smux 0.3.4

Asynchronous smux multiplexing library
Documentation
use thiserror::Error;

use crate::config::StreamIdType;

#[derive(Debug, Error)]
pub enum MuxError {
    #[error("Invalid command {0}")]
    InvalidCommand(u8),
    #[error("Invalid version {0}")]
    InvalidVersion(u8),
    #[error("Payload too large {0}")]
    PayloadTooLarge(usize),
    #[error("Duplicated stream id {0}")]
    DuplicatedStreamId(u32),

    #[error("Invalid stream ID from peer: {0}, local stream ID type: {0:?}")]
    InvalidPeerStreamIdType(u32, StreamIdType),

    #[error("Too many streams")]
    TooManyStreams,

    #[error("Inner connection closed")]
    ConnectionClosed,
    #[error("Mux stream closed: {0:x}")]
    StreamClosed(u32),

    #[error("IO error: {0}")]
    IoError(#[from] std::io::Error),
}

pub type MuxResult<T> = Result<T, MuxError>;