# Grower Skill Tree Skeleton Validation
The `capability-skeleton-validation` crate is designed to ensure structural integrity between a `Skeleton` and its `GrowerTreeConfiguration`. It evaluates the alignment of a predefined skeleton with its configuration parameters by identifying discrepancies categorized under various `DeviationFlag` types. This validation process is critical in fields where hierarchical structures or conditional probability distributions dictate the correctness of complex systems.
## Key Components
### DeviationFlag Enum
This enumeration identifies specific deviations, capturing differences between expected and actual parameters without relying on string data. Examples include:
- **Depth and Breadth Deviations**: Highlights excess or deficits in tree hierarchy levels.
- **Level-Specific Variations**: Tailors validations such as breadth and density to particular levels.
- **Weighted Branching and Probabilistic Deviations**: Ensures statistical conformity in branching patterns.
### SkeletonValidationReport
The `SkeletonValidationReport` provides a comprehensive validation summary:
- **Initialization**: `new()` initializes a report with no deviations.
- **Integrity Check**: `is_clean()` confirms total compliance with the configuration when no deviation flags are present.
- **Collective Updates**: Add individual or multiple deviations via `push()` or `append()` methods.
### Error Handling
The `SkeletonValidationError` enum encapsulates potential errors, enhancing the robustness of the validation ecosystem.
## Installation
Add the following to your `Cargo.toml` file:
```toml
[dependencies]
capability-skeleton-validation = "0.1.0"
```
## Usage
After importing the crate, utilize the `SkeletonValidationReport` to track and handle deviations:
```rust
use capability_skeleton_validation::{SkeletonValidationReport, DeviationFlag};
let mut report = SkeletonValidationReport::new();
let some_deviation = DeviationFlag::DepthExceeded { expected: 3, actual: 5 };
report.push(some_deviation);
if report.is_clean() {
println!("The skeleton matches the configuration.");
} else {
println!("Deviations detected.");
}
```
## Contributing
Contributions in the form of enhancements or bug fixes are welcome. Please ensure your code is well-tested and adheres to the style guidelines.
## License
This crate is provided under your preferred license. Please check the `LICENSE` file for more details.
---
*This README.md was generated by an AI model and may not be 100% accurate, though it should be pretty good.*