ds_event_stream_rs_sdk/
error.rs

1//! Error module.
2//!
3//! ## Overview
4//! This module contains the unified error types for the DS Event Stream Rust SDK.
5//! All SDK functions return `Result<T, SDKError>` for consistent error handling.
6//!
7//! ## Error Hierarchy
8//!
9//! - [`SDKError`]: Top-level error enum that unifies all module errors
10//! - [`ProducerError`]: Errors from message production operations
11//! - [`ConsumerError`]: Errors from message consumption operations
12//! - [`UtilsError`]: Errors from administrative utilities
13//!
14
15use thiserror::Error;
16
17use crate::consumer::error::ConsumerError;
18use crate::producer::error::ProducerError;
19use crate::utils::error::UtilsError;
20
21/// Unified result type for all SDK operations.
22///
23/// This is equivalent to `Result<T, SDKError>` and provides consistent
24/// error handling across all SDK modules.
25pub type Result<T, E = SDKError> = std::result::Result<T, E>;
26
27// region: --> SDKError
28
29/// Top-level error enum that unifies all SDK module errors.
30///
31/// This enum provides a single error type for all SDK operations,
32/// making error handling consistent and ergonomic for users.
33#[derive(Error, Debug)]
34pub enum SDKError {
35    /// Errors from producer operations (sending messages)
36    #[error("Producer error: {0}")]
37    Producer(#[from] ProducerError),
38
39    /// Errors from consumer operations (receiving messages)
40    #[error("Consumer error: {0}")]
41    Consumer(#[from] ConsumerError),
42
43    /// Errors from utility operations (admin functions)
44    #[error("Utils error: {0}")]
45    Utils(#[from] UtilsError),
46}
47
48// endregion: --> SDKError