| Crates.io | cdumay_core |
| lib.rs | cdumay_core |
| version | 0.1.6 |
| created_at | 2024-07-17 13:35:34.824894+00 |
| updated_at | 2025-05-26 12:34:59.137324+00 |
| description | A Rust Library for standard code |
| homepage | https://github.com/cdumay/cdumay_core |
| repository | https://github.com/cdumay/cdumay_core |
| max_upload_size | |
| id | 1306181 |
| size | 81,843 |
cdumay_core is a lightweight crate that provides custom Error and Result types
as drop-in replacements for Rust’s standard std::result::Result and std::error::Error,
with the primary goal of supporting serialization and deserialization via [serde].
Rust's standard error types do not implement Serialize and Deserialize due to
their generic and trait-based nature. This crate provides concrete, serializable
alternatives suitable for applications like:
Error] — A serializable error type with a message and optional cause.Result<T>] — A simple alias for crate::result::Result<T, Error>, fully serializable.serde::{Serialize, Deserialize}.use cdumay_core::{ErrorBuilder, Result};
fn do_work() -> Result<i32> {
Err(
ErrorBuilder::default()
.with_message("Something went wrong".to_string())
.build()
).into()
}
utoipa: Implement utoipa::ToSchema to Erroractix-web: Allow to use Result and Error with actixThis crate is designed for applications that require custom serialization logic.
It is not a full replacement for std::result::Result in all use cases, especially
where standard error traits are expected.
Use the provided derive macros to define your error and error kind structs:
use cdumay_core::{define_errors, define_kinds};
define_kinds! {
UnknownError = (500, "Unexpected error"),
IoError = (500, "IO error")
}
define_errors! {
Unexpected = UnknownError,
FileRead = IoError,
Forbidden = (IoError, 403), // kind code overwrite 500 -> 403
FileNotFound = (IoError, 404, "File not found") // kind description overwrite
}