#standard-error #define #cdumay

cdumay_error_standard

A Rust Library which define standard errors

1 stable release

1.0.1 Feb 7, 2025

#37 in #define

Download history 129/week @ 2025-02-04 11/week @ 2025-02-11

140 downloads per month
Used in cdumay_result

Custom license

7KB

cdumay_error_standard

License: BSD-3-Clause cdumay_error_standard on crates.io cdumay_error_standard on docs.rs Source Code Repository

A collection of standard error types and error kinds commonly used in Rust applications. This crate provides predefined error types and kinds using the cdumay_error framework.

Features

  • Common error types for IO operations and unexpected errors
  • Easy integration with the cdumay_error framework

Examples

use cdumay_error_standard::{FileNotExists, Unexpected};
use std::path::Path;

// Creating a FileNotExists error
fn check_file(path: &Path) -> Result<(), Box<dyn std::error::Error>> {
    if !path.exists() {
        return Err(FileNotExists::new().set_message(format!(
            "File {} does not exist",
            path.display()
        )).into());
    }
    Ok(())
}

// Using Unexpected error for runtime errors
fn divide(a: i32, b: i32) -> Result<i32, Box<dyn std::error::Error>> {
    if b == 0 {
        return Err(Unexpected::new().set_message("Division by zero".into()).into());
    }
    Ok(a / b)
}

Error Handling

All errors implement the AsError trait from cdumay_error, providing consistent error handling across your application:

use cdumay_error_standard::{FileRead};
use cdumay_error::AsError;

fn read_content() -> Result<String, Box<dyn std::error::Error>> {
    let err = FileRead::new().set_message("Failed to read config file".into());

    // Access error properties
    println!("Error code: {}", FileRead::kind.code());
    println!("Message: {}", err.message());

    Err(err.into())
}

Dependencies

~0.5–1.2MB
~26K SLoC