class QroissantError(Exception):
    """Base class for qroissant-specific failures."""

class DecodeError(QroissantError):
    """Raised when q IPC payload decoding fails."""

class ProtocolError(QroissantError):
    """Raised when q IPC framing or message validation fails."""

class TransportError(QroissantError):
    """Raised when transport IO or socket operations fail."""

class OperationError(QroissantError):
    """Raised when a qroissant operation is unsupported."""

class QRuntimeError(QroissantError):
    """Raised when the remote q process returns an error response."""

class PoolError(QroissantError):
    """Raised when connection pool management fails."""

class PoolClosedError(PoolError):
    """Raised when a closed connection pool is used."""

