Skip to main content

crabka_client_streams/
error.rs

1//! Error type for the streams membership client.
2
3/// Errors surfaced by the streams membership client.
4#[derive(Debug, thiserror::Error)]
5pub enum StreamsClientError {
6    /// Transport / dispatch failure from `crabka-client-core`.
7    #[error(transparent)]
8    Transport(#[from] crabka_client_core::ClientError),
9    /// Building the topology failed (bad node graph).
10    #[error("topology error: {0}")]
11    Topology(#[from] crate::topology::TopologyError),
12    /// The group coordinator was unavailable past the retry deadline.
13    #[error("streams group coordinator unavailable")]
14    CoordinatorUnavailable,
15    /// The broker rejected the topology (`STREAMS_INVALID_TOPOLOGY*` family).
16    #[error("invalid topology (code {code}): {message}")]
17    InvalidTopology { code: i16, message: String },
18    /// `GROUP_AUTHORIZATION_FAILED` / `TOPIC_AUTHORIZATION_FAILED`.
19    #[error("authorization failed (code {0})")]
20    Authorization(i16),
21    /// `GROUP_ID_NOT_FOUND`.
22    #[error("group id not found")]
23    GroupIdNotFound,
24    /// The membership handle has been closed.
25    #[error("membership closed")]
26    Closed,
27    /// An unmapped broker error code.
28    #[error("broker error code {0}")]
29    Server(i16),
30    /// A runtime processing/produce/commit failure.
31    #[error("runtime error: {0}")]
32    Runtime(String),
33    /// An interactive query failed.
34    #[error(transparent)]
35    InteractiveQuery(#[from] crate::runtime::iq::IqError),
36}