icentral-errors 0.1.0

Provides error handling utilities for betweenness centrality computations, including custom error types and conversion implementations for synchronization errors.
Documentation
# iCentral Errors Crate

The `icentral-errors` crate provides robust error handling utilities specifically tailored for applications dealing with betweenness centrality computations. This crate simplifies error management and offers clear semantics when handling edge cases that arise in complex graph-algorithm operations.

### Features

- **Poison Message Trait**: An abstraction over error objects to facilitate the creation of descriptive error messages through the `PoisonMessage` trait.
- **BetweennessCentralityError Enum**: A comprehensive error enumeration specifically designed to cover typical anomalies encountered in centrality calculations.
- **Conversions and Implementations**:
  - Easily convert synchronization-related errors, specifically `PoisonError`, into betweenness centrality specific errors using custom `From` implementations.
  - Error constructors for common scenarios like no key presence and data mismatches with detailed diff reporting.

### Example Usage

```rust
use icentral_errors::BCError;

fn process_centrality() -> Result<(), BCError> {
    // ... your algorithm
    Err(BCError::no_key(42))
    // ...
}
```

### Getting Started

Add the following to your `Cargo.toml`:

```toml
[dependencies]
icentral-errors = "0.1.0"
```

### About

This crate was generated by an AI model and may not be 100% accurate. However, it is designed to offer substantial utility and a pattern-rich foundation for error management in graph-related computation scenarios.


This crate is in the process of being translated from c++ to rust. Currently, it still needs exhaustive testing.  It is likely there currently exist many glitches which need to be fixed before proper usage. This crate is based on the original icentral program developed by Fuad Jamor. Please see the following repository for details: https://github.com/fjamour/icentral.

For progress updates, see the workspacer rust project.