axum-error-sets
Typed, composable HTTP error sets for Axum and Aide.
Instead of monolithic error enums or loosely-typed responses, functions declare the exact set of HTTP status codes they can return using type-level tuple sets (e.g., (NotFound, Unauthorized)), powered by type-sets.
Features
- No Monolithic Error Enums: Avoid constructing domain-wide error enums or per-function error types.
- Exact Error Contracts: Functions declare precisely which HTTP status codes they can produce.
- Subset-to-Superset Promotion: Error sets grow deterministically as they move up application layers via
.into_superset(). - Custom Response Formatting: Implement
ErrorSetValueto control how error values convert into Axum responses. - Compile-Time Guarantees: Returning undeclared status codes produces a compiler error.
- OpenAPI / Aide Support: Implement
AideErrorSetValueto automatically document status codes in OpenAPI specifications.
Quick Example
For complete, runnable code, see the examples/ directory.
use ;
use ;
// Low-level error sets expand into a larger contract via `.into_superset()`