rok_utils/errors/mod.rs
1//! Error handling with AdonisJS-inspired typed errors.
2//!
3//! This module provides the `RokError` enum with machine-readable error codes
4//! and HTTP status semantics.
5//!
6//! # Error Codes
7//!
8//! | Code | Status | Description |
9//! |------|--------|-------------|
10//! | `E_NOT_FOUND` | 404 | Resource not found |
11//! | `E_UNAUTHORIZED` | 401 | Authentication required |
12//! | `E_FORBIDDEN` | 403 | Access denied |
13//! | `E_VALIDATION_FAILURE` | 422 | Input validation failed |
14//!
15//! # Example
16//!
17//! ```rust
18//! use rok_utils::{RokError, RokResultExt};
19//!
20//! fn find_user(id: u64) -> Result<String, RokError> {
21//! if id == 42 {
22//! Ok("Alice".to_string())
23//! } else {
24//! Err(RokError::NotFound(format!("User #{id}")))
25//! }
26//! }
27//!
28//! let result = find_user(42).context("Database query failed");
29//! assert!(result.is_ok());
30//! ```
31
32pub mod context;
33pub mod kinds;
34
35pub use context::wrap_error;
36pub use kinds::{ResultExt, RokError};