workspacer-interface 0.5.0

Core trait definitions and error types for the Workspacer ecosystem, providing unified interfaces for workspace and crate management.
Documentation
# workspacer-interface

`workspacer-interface` is the core trait and error definitions crate for the Workspacer ecosystem. It defines the common interfaces that unify how workspaces and individual crates are managed. This crate provides a set of traits for:

- **Crate Handling:**  
  The `CrateHandleInterface` trait defines the operations required for working with a single crate (such as validating integrity, retrieving source files, and checking required files).

- **Cargo.toml Parsing & Validation:**  
  The `CargoTomlInterface` trait and its related helper traits standardize access to a crate’s manifest, ensuring required fields exist and are valid for both integrity and publishing.

- **Workspace Operations:**  
  The `WorkspaceInterface` trait bundles together common operations (cleanup, watching for changes, running tests with coverage, rebuilding, generating docs, linting, dependency analysis, etc.) required for managing multi-crate workspaces.

- **Unified Error Handling:**  
  A comprehensive set of error types is defined using `error_tree!`, allowing consistent error reporting across the Workspacer suite.

Built on top of Tokio and async_trait, all operations are designed to be asynchronous and nonblocking, making it well-suited for modern Rust development workflows.

## Features

- **Asynchronous Trait Methods:**  
  Uses `async_trait` to allow async methods in trait definitions for nonblocking operations.
  
- **Comprehensive Interface Definitions:**  
  Provides standardized interfaces for crate handling, Cargo.toml parsing, workspace management, and more.

- **Unified Error Management:**  
  Error types defined via `error_tree!` cover issues from I/O to validation and command execution, ensuring consistent error propagation across components.

- **Extensibility:**  
  Designed to be implemented by other components of the Workspacer ecosystem, enabling custom integrations and behavior extensions.

## Installation

Add the following to your `Cargo.toml`:

```toml
[dependencies]
workspacer-interface = "0.1.0"
```

## Usage

Implement the provided traits to integrate your workspace or crate handling with the Workspacer system. For example, you might implement `CrateHandleInterface` for your custom crate handler and then use `WorkspaceInterface` to orchestrate operations on an entire workspace.

```rust
use workspacer_interface::{CrateHandleInterface, WorkspaceInterface};

// Example: Implement your own CrateHandleInterface, or use an existing implementation.
```

For more details on available traits and error types, please consult the source or the documentation.

## Contributing

Contributions are welcome! Please see the [repository](https://github.com/klebs6/klebs-general) for guidelines on reporting issues and submitting pull requests.

## License

This project is dual-licensed under either the [MIT license](LICENSE-MIT) or the [Apache License, Version 2.0](LICENSE-APACHE), at your option.