rskit_errors/lib.rs
1//! Structured application error types with HTTP status mapping.
2//!
3//! # Examples
4//!
5//! ```rust
6//! use rskit_errors::{AppError, AppResult, ErrorCode};
7//!
8//! fn find_user(id: &str) -> AppResult<String> {
9//! Err(AppError::not_found("user", Some(id))
10//! .context("find_user"))
11//! }
12//!
13//! let err = find_user("abc").unwrap_err();
14//! assert_eq!(err.code(), ErrorCode::NotFound);
15//! assert!(err.message().contains("find_user"));
16//! ```
17
18#![warn(missing_docs)]
19
20/// Machine-readable error classification codes.
21pub mod code;
22/// Conversions between [`AppError`] and HTTP status types.
23pub mod convert;
24/// Structured [`AppError`] type with rich context.
25pub mod error;
26/// RFC 9457 Problem Details response type.
27pub mod response;
28
29pub use code::ErrorCode;
30pub use error::AppError;
31pub use response::{ProblemDetail, type_base_uri};
32
33/// Convenience alias used throughout rskit crates.
34pub type AppResult<T> = Result<T, AppError>;