3 releases
Uses new Rust 2024
| 0.1.3 | May 23, 2025 |
|---|---|
| 0.1.2 | Apr 21, 2025 |
| 0.1.1 | Apr 21, 2025 |
#6 in #http-errors
13KB
110 lines
cdumay_error_http
This crate provides structured mapping from HTTP status codes to custom application error types using the cdumay_core crate. It is especially useful when you want to handle HTTP error responses in a standardized and extensible way.
Features
- Maps common HTTP status codes (300–511) to well-defined application-specific errors.
- Integrates seamlessly with the
cdumay_coreecosystem. - Allows contextual error data and custom messages.
- Supports conversion from
u16
Usage
Define Error Kinds and Errors
The define_kinds! macro associates each HTTP status code with:
- A numerical HTTP status code
- A descriptive error label
The define_errors! macro maps those kinds into named error types (e.g., NotFound, TooManyRequests, etc.).
use std::collections::BTreeMap;
use serde_value::Value;
use cdumay_error_http::HTTPErrorConverter;
let mut context = BTreeMap::new();
context.insert("url".to_string(), Value::String("https://example.com".to_string()));
let error = HTTPErrorConverter::from_u16(404, context);
println!("{:?}", error);
Dependencies
~0.6–1.3MB
~28K SLoC