axiolid_profile/
validate.rs

1//! Profile validation and algorithm extension points.
2
3use axiolid_core::Tolerance;
4
5/// Validate a profile without mutating it.
6pub trait ValidateProfile<P> {
7    /// Structured validation report.
8    type Report: core::fmt::Debug;
9
10    /// Diagnose closure, dimensions, self-intersection, and nesting.
11    fn validate(&self, profile: &P, tolerance: Tolerance) -> Self::Report;
12}