#[derive(Debug, thiserror::Error)]
pub enum StreamsClientError {
#[error(transparent)]
Transport(#[from] crabka_client_core::ClientError),
#[error("topology error: {0}")]
Topology(#[from] crate::topology::TopologyError),
#[error("streams group coordinator unavailable")]
CoordinatorUnavailable,
#[error("invalid topology (code {code}): {message}")]
InvalidTopology { code: i16, message: String },
#[error("authorization failed (code {0})")]
Authorization(i16),
#[error("group id not found")]
GroupIdNotFound,
#[error("membership closed")]
Closed,
#[error("broker error code {0}")]
Server(i16),
#[error("runtime error: {0}")]
Runtime(String),
#[error(transparent)]
InteractiveQuery(#[from] crate::runtime::iq::IqError),
}